Article The Content Model

Most information within Verint Community and interactions with Verint Community conform to the platform's content model, an abstract, global organization of all content and its associated containing structures to enable platform-level global functionality.

What is the Content Model?

The content model is an abstract representation of general content and its containing structures. This generic model is used to provide global services from the platform to enable consistent interactions and simplified extensibility and integration. The content model consists of three types of entities: Containers, Applications, and Content.

Containers

Containers are the top-level organization structure for content. On their own, containers offer little functionality aside from organizing applications, which contain content. Containers can be nested within themselves to provide deep navigational structures.

Within Verint Community, the most prominent example of a container is a group.

Applications

Applications exist within a single container and are the direct owner of content. That is, all content exists within a single application which exists within a single container. Within Verint Community, applications are are used as the basis for URL routes and permissions/security.

An example of an application in Verint Community is a blog.

Content

Content exists within a single application and represents authored, not structural, information. Most interactions within Verint Community are on content. Likes, bookmarks, comments, activity streams, notifications, search, etc occurs on content.

An example of content in Verint Community would be a post within a blog.

An Internal Example: Forums

The forums functionality in Verint Community consists of the "Forums" application which references the "Groups" container (that is, a forum exists within a group). The forums functionality defines two types of content: "Forum Threads" and "Forum Replies" both of which are defined to exist within the "Forums" application. The forums application types, forum threads content type, and forum replies content type are registered with the Verint Community platform via plugins, specifically as an IApplicationType (for the forum application type) and IContentType (for the forum thread and forum reply content types).

By integrating directly using server-installed code, the forums functionality connects its data store of forum data to the platform, extending the platform's "Group" container type and using other plugin types to define URLs/routes to access forum data through the Verint Community web UI, permissions to secure forum data, as well as integrating with search, likes, bookmarks, and other platform-defined services.

An External Example: URLs

External integrations can also make use of the content model and associated platform services via an OAuth client and the REST API. An OAuth client is an external integration that uses the REST API to interact with the Verint Community platform. OAuth clients can use Verint Community services on external URLs.

In this situation, the OAuth client represents an application in the content model, extending the top-level group (container) of the Verint Community site. URLs referenced using the OAuth client when interacting with the REST API are interpreted as content associated to the OAuth client within Verint Community. This enables the OAuth client (external integration) to use platform-defined services such as bookmarking, liking, commenting, rating on data not stored within Verint Community but able to be referenced by a unique URL.

Content and Core Services

As mentioned earlier, Verint Community provides global services to interact with data socially. These "core services" act on the content model. Some examples of core services provided by the Verint Community platform and how they interact with the content model is below:

How do I interact with the Content Model?

How you use the content model depends largely on whether you're implementing an external integration, integrating using plugins installed within Verint Community, or using content while customizing the Verint Community user interface:

Within an External Integration

With an external integration, you're primarily interacting with Verint Community using the REST API. You can use the installed content model implementations (groups, blogs, forums, etc) regardless of how you authenticate your REST requests.

If you want to use Verint Community services on external content, you can authenticate your REST requests using OAuth. By using an OAuth client, you can reference URLs within the context of your OAuth client and use Verint Community's content services by providing a ContentUrl to supporting services via their REST APIs.

Using Plugins Installed within Verint Community

 Plugins can interact with content generically or specifically using the in-process API to automate existing behavior or to expose functionality on existing content in a new way.

The Verint Community platform also enables the implementation of new content model entities and types via content-related plugins: IContainerType, IApplicationType, and IContentType. These base plugin types can be extended to add support for Verint Community services via extensions to these base plugin types. For an example of implementing a custom application, see Creating Custom Applications and Content and Adding Core Service Support to Content.

Using Automations

 Automations can interact with content based on platform-event, scheduled, or manual triggers to implement business logic and integrations using the Scripting API .

When Customizing the User Interface

Themes , Widgets , and Embeddables can interact with content generically or specifically using the Scripting API  to expose existing data in a new way.