Skip to content
📊Sample Nodejs Application for the IBM Watson Personality Insights Service
Branch: master
Clone or download
Pull request Compare This branch is 140 commits behind watson-developer-cloud:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Personality Insights Nodejs Starter Application

Build Status

The IBM Watson Personality Insights service uses linguistic analysis to extract cognitive and social characteristics from input text such as email, text messages, tweets, forum posts, and more. By deriving cognitive and social preferences, the service helps users to understand, connect to, and communicate with other people on a more personalized level.

Choose your development enviroment

  • Bluemix DevOps Sevices - integrated agile planning, coding, building, and deploy to Bluemix OR
  • CLI Cloud Foundry - lovers of command-line tools and their favorite text editor with Bluemix

Getting Started using Bluemix DevOps Services

  1. Create a Bluemix Account

Sign up in Bluemix, or use an existing account. Watson Services in Beta are free to use.

  1. Click Deploy to Bluemix Bluemix Deployments

  2. LOG IN using your Bluemix Account and then click DEPLOY to deploy the app and create a private DevOps Services project for you.

  3. Click the EDIT CODE button to setup your workspace

  4. Optional: See Setting Up Twitter Application section to enable live twitter crawling.

  5. Click the GIT icon in the left column navigation toolbar to commit your changes.

  6. Click the BUILD & DEPLOY button to deploy your app to Bluemix

Getting Started using CLI Cloud Foundry

  1. Create a Bluemix Account

Sign up in Bluemix, or use an existing account. Watson Services in Beta are free to use.

  1. Download and install the Cloud-foundry CLI tool

  2. Edit the manifest.yml file and change the <application-name> to something unique.

- services:
  - personality-insights
  name: <application-name>
  command: npm start
  path: .
  memory: 256M

The name you use will determinate your application url initially, e.g. <application-name>

  1. Optional: See Setting Up Twitter Application section to enable live twitter crawling.

  2. Connect to Bluemix in the command line tool

$ cf api
$ cf login -u <your user ID>
  1. Create the Personality Insights service in Bluemix
$ cf create-service personality_insights tiered personality-insights-service
  1. Push it live!
$ cf push

See the full Getting Started documentation for more details, including code snippets and references.

Running locally

The application uses Node.js and npm so you will have to download and install them as part of the steps below.

  1. Copy the credentials from your personality-insights-service service in Bluemix to credentials.json, you can see the credentials using:

    $ cf env <application-name>

    Example output:

      "personality_insights": [{
          "credentials": {
            "url": "<url>",
            "password": "<password>",
            "username": "<username>"
        "label": "personality_insights",
        "name": "personality-insights-service",
        "plan": "IBM Watson Personality Insights Monthly Plan"

    You need to copy username, password and url.

  2. See Setting Up Twitter Application section to enable live twitter crawling.

  3. Install Node.js

  4. Go to the project folder in a terminal and run: npm install

  5. Start the application

  6. npm start

  7. Go to http://localhost:3000

Setting Up Twitter Application

First you need to Create a Twitter application and add your application's callback URL:

  • For Bluemix environment: <application-name>
  • For Local environment: server.local:3000/auth/twitter/callback (be sure to configure hosts file so server.local points

Edit the credentials.json file and change the <consumer_key> and <consumer_secret> tokens with the one from your twitter's application.

  "twitter" : {
    "application" : {
      "consumer_key" : "<consumer_key>",
      "consumer_secret" : "<consumer_secret>"


To troubleshoot your Bluemix app the main useful source of information are the logs, to see them, run:

$ cf logs <application-name> --recent


This sample code is licensed under Apache 2.0. Full license text is available in LICENSE. This sample code uses d3 and jQuery, both distributed under MIT license.



Open Source @ IBM

Find more open source projects on the IBM Github Page

Privacy Notice

This node sample web application includes code to track deployments to Bluemix and other Cloud Foundry platforms. The following information is sent to a Deployment Tracker service on each deployment:

  • Application Name (application_name)
  • Space ID (space_id)
  • Application Version (application_version)
  • Application URIs (application_uris)

This data is collected from the VCAP_APPLICATION environment variable in IBM Bluemix and other Cloud Foundry platforms. This data is used by IBM to track metrics around deployments of sample applications to IBM Bluemix. Only deployments of sample applications that include code to ping the Deployment Tracker service will be tracked.

Disabling Deployment Tracking

Deployment tracking can be disabled by removing require('cf-deployment-tracker-client').track(); from the beginning of the server.js file at the root of this repo.

You can’t perform that action at this time.