Introduction to the Jive Development Platform

The current enterprise landscape often involves disparate systems with disparate interfaces. There are engineering servers, content management systems, supply chain management systems, version control systems, customer relationship management systems, and so on. These systems communicate with each other in varying degrees of effectiveness—both through automation and through manual processes—but they often remain separate silos of information.

Jive recognizes this problem and helps unify these disparate experiences. Not only does the Jive platform make it easy to bring content into Jive, it also brings Jive to these other systems.

Some of these connections are provided today with out-of-the-box solutions. No coding necessary. For example:

StreamOnce brings systems, such as Email, Facebook, Twitter, LinkedIn, Evernote, Yammer, Dropbox into Jive as activity streams. This activity behaves just like activity initiated from within Jive itself.

The Jive for Outlook connector brings Jive into Outlook. Collaboration can occur without ever leaving Outlook.

The Jive Anywhere browser extension allows you to discuss anything on the web using a browser sidebar that shows existing Jive discussions related to the current page. You can also create new discussions with Jive Anywhere.

These are just a few of the tools provided with Jive to help your organization collaborate more effectively.

Sometimes, however, these built-in solutions are not enough. In order to solve your particular business-specific problems, Jive provides a broad development platform so that you have this same deep integration into the Jive system as the Jive developers who created these out-of-the-box tools.

The Jive Platform is a collection of APIs and SDKs to help you put together great solutions to solve different business problems. The Jive Platform is divided into distinct categories, each one targeted for different use cases. You won’t need them all, but you may need more than one.

This page provides you with a deeper understanding of each category to help you decide which ones are best suited for your needs.

Tiles, Streams, & Templates

Jive gives you several ways to bring content into your Purposeful Place. This can be done with tiles that reside on the right pane of a page, with activity streams that are threaded alongside native activity streams, and with templates that allow you to replicate a layout made up of tiles and streams.

Why use this solution? Tiles, streams, and templates allow you to highlight specific, up-to-the-minute information that relates to a particular group or project. Not everybody in the organization has (or wants) access to these external systems, but they may need to see some of the content within them. Now you can bring more visibility to this content. And you can send relevant information back to those external systems.

Tiles

Tiles represent the elements on the right side of a place.

Many types of tiles are already available to you, such as the list of featured content, or the list of top contributors. This built-in functionality is achieved by using tiles. But you can create your own tiles. There are five different types of tiles available to you.

After the basic registration process, the core communication between your tile service and the Jive server involves you pushing JSON data to the tile when the data changes. You provide the content; Jive is responsible for displaying the content. Here is a JSON sample:

Streams

Streams are another type of dynamic content you can push to a Purposeful Place. With streams, you can add content directly to the activity stream of that place. The activity you push to a place is threaded alongside natively created activity. As with native activity, your activity is searchable from the search field.

Similar to tiles, the essential communication involves a JSON-based data push to Jive.

Templates

Jive templates provide a reusable way to organize a group of tiles and activities to solve a particular problem. A general team collaboration place has different needs than a customer support place. You can create specific templates to be used as the basic organizing principle behind these types of places.

Templates, tiles, and streams, are provided to help you put more purpose to your Purposeful Places.

Apps

Apps allow you to extend the Jive UI with your own business-specific application. An app UI can contain content from an external system, and it has access to Jive's open social API so that you can connect Jive information with information from your own external systems.

Why use this solution? Apps allow you to bring your own UI with your own content into the Jive experience.

The screenshot below displays the SmarterPath app, which allows a user to run through a set of training courses.

Apps can be accessed from the Apps menu, as shown below.

But in addition to accessing your app through the Apps menu, you can provide context-specific access to your app through "application action contributions". In this way, a user can access your app from within the contexts that make the most sense. Some locations for app actions include the sidebar, project tabs, the create menu, and even within the text area when creating content.

A Jive App is written in HTML and JavaScript, or using another web-based scripting language. Application actions are defined within elements of the HTML content. The excerpt below illustrates how you might wire up an application action to the sidebar wherever content is displayed.

REST & Webhooks

The Jive REST API gives you comprehensive functionality for interacting with your Jive community. Webhooks allow you to subscribe to Jive community activity so that you are notified when relevant activity occurs.

Why use this solution? While previously discussed solutions involve presenting an interface within the Jive community, the REST API and Webhooks are about interacting with Jive from the outside. The REST API allows you to query the Jive community and perform the same actions that a user can perform manually from within the UI. Webhooks allow your external system to receive Jive activity information in an event-driven manner, rather than having to poll repeatedly for information.

REST API

The REST API gives you powerful access to the Jive community. Most user actions within Jive can be performed with the REST API. Some of the major categories of REST APIs include:

Webhooks

Webhooks are user-defined HTTP callbacks that allow you to be notified when events occur in your Jive community. You can use webhooks to synchronize your external content to the Jive community without the need to poll the Jive community. This is valuable, for example, if you are trying to do bidirectional commenting with another system.

Jive supports two types of webhooks:

Content webhooks. These cover events related to content changes. For example, notification when someone comments on a document.

System webhooks. These cover system events unrelated to specific content. For example, notification when a user profile changes.

The example below illustrates a request for webhooks related to activity within a particular place (with ID "1020"):

Cartridges

Before understanding the potential of Jive cartridges, let's first discuss Jive Anywhere. Jive Anywhere is a browser extension that allows you to open a sidebar and see the conversations in your Jive community that relate to the currently viewed web page.

Jive Cartridges allow you to take this context-based conversation further. With a cartridge, you can fine-tune how Jive Anywhere searches for related material within your Jive community using information within the currently viewed page. You can also control what is clipped from the page by default when creating new discussions.

Why use this solution? A cartridge is an easy way to connect activity on the web with activity in your Jive community using added intelligence to the process based on what you know about a website. It extends the functionality of the Jive Anywhere browser extension by allowing you to fine-tune how you associate a web page to Jive discussions.

With a cartridge, you can even use JavaScript to manipulate the DOM of the current web page to include content within that page. In the below screenshot, a Gmail cartridge has added a button on the page for creating a Jive discussion from an email.

Cartridges can be created quickly using JavaScript. The following JavaScript extracts the username for the LinkedIn cartridge:

External Storage Framework

External Storage Framework (ESF) is a powerful solution for connecting a Jive place to an external storage system. To the user, there is seamless integration between systems: if a file is uploaded via Jive, it will appear on the external system; if a file is uploaded via the external system, it will appear within Jive. Under the hood, all binary data is stored within this external system. However, this content is treated like a first-class content type within Jive: you can edit it, you can search for it, you can comment on it. Commenting on either system can work bidirectionally, if desired. Existing ESF solutions include Box, Google Drive, Dropbox, and others.

Why use this solution? ESF is the best way to link Jive to an external storage system. You can provide bidirectional support for files, and for related comments. You can control membership as well.

ESF is implemented as a REST service between Jive and the external storage system.

Your code can implement the following endpoints, depending on how much functionality you choose to support:

Analytics

Why use this solution? The Analytics API is an effective way to extract activity data from your Jive community.

This data can easily be integrated into an analytics tool. For example, the following screenshot illustrates a Splunk integration implemented by Pokeshot:

In order to access analytics information, you need to acquire a client ID and secret from the administrator of your Jive community. With this information, you can request an access token using an API call. This access token is necessary to perform activity requests.

The following command requests two activity items, beginning with index number two:

Mobile

With the Jive Mobile SDK, you can bring Jive content and capabilities into your iOS app. This SDK is the very same SDK used by Jive to create its own mobile experience. You can build a full-blown Jive experience or simply connect with the subset of features relevant to your use case.

Why use this solution? The Mobile SDK allows you to interact with the Jive community from within your iOS app.

This iOS7-compatible SDK is based on the Jive REST API, includes JSON-Object mappings, and is designed using an intuitive class hierarchy. The following sample code illustrates what it is like to use the SDK get information about the user's inbox: