node package manager



nforce-chatter is a Chatter REST API plugin for nforce.


The Chatter API is #massive so the plugin is a work in progress. The following functionality has been implemented. Pull requests are welcome!

  • Get Chatter Activity Statistics for a User
  • Get My News Feed
  • Get a Record Feed
  • Get a Group Feed
  • Post a Feed Item
  • Like a Feed Item
  • Post a Comment

The test/chatter.js mocha test has sample code.

See the Chatter Developer's Guide for complete and official documentation.


$ npm install nforce-chatter


Require nforce and nforce-chatter in your app and create a client connection to a Salesforce Remote Access Application with the chatter plugin enabled.

var nforce = require('nforce'),
  chatter = require('nforce-chatter')(nforce),
var org = nforce.createConnection({
  redirectUri: 'http://localhost:3000/oauth/_callback',
  apiVersion: 'v32.0',  // optional, defaults to current salesforce API version 
  environment: 'production',  // optional, salesforce 'sandbox' or 'production', production default 
  mode: 'multi', // optional, 'single' or 'multi' user mode, multi default 
  plugins: ['chatter']

Now we just need to authenticate and get our salesforce OAuth credentials. Here is one way to do this in multi-user mode...

// multi user mode 
var oauth;
org.authenticate({ username: '', password: 'mypassword'}, function(err, resp){
  // store the oauth object for this user 
  if(!err) oauth = resp;

...or in single-user mode...

// single-user mode 
org.authenticate({ username: '', password: 'mypassword'}, function(err, resp){
  // the oauth object was stored in the connection object 
  if(!err) console.log('Cached Token: ' + org.oauth.access_token)

See the nforce readme for more detailed instruction on the awesome features of nforce.

nforce-chatter API Basics


The API of nforce-chatter follows typical node.js standards. Callbacks will always pass an optional error object, and a response object. The response object closely resembles the typical responses from the Salesforce REST API.

callback(err, resp);

Calling Functions

API calls take two arguments:

  1. A JavaScript object containing the data for the function
  2. The callback
org.chatter.recordFeed({id: '0037000000TWktt'}, function(err, resp) {
  if (!err) console.log(resp);
  if (err) console.log(err);

If you are using multi-user mode, pass the connection info in the hash with the oauth property.

org.chatter.recordFeed({id: '0037000000TWktt', oauth: oauth}, function(err, resp) {
  if (!err) console.log(resp);
  if (err) console.log(err);

Running Tests

The mocha tests currently run directly against a Saleforce org. I would like to switch them to use nock in the near future. To run the tests, first you'll need to rename test/config-example.js to test/config.js and enter your connection parameters. Then run the tests.

$ npm test

nforce-chatter Methods


Returns Chatter statistics for a salesforce user.

  • id: Required. The id of the user to return statistics for.


Returns the context user's news feed.


Returns the feed for a specified record.

  • id: Required. The id of the record to return the feed for.


Returns the feed for a specified group.

  • id: Required. The id of the group to return the feed for.


Posts a new feeditem for a record.

  • id: Required. The ID of the parent this feed element is being posted to. This value can be the ID of a user, group, or record, or the string me to indicate the context user.
  • text: Required. The text of the post.


Posts a new comment on a feeditem.

  • id: Required. The id of the feeditem to post the comment
  • text: Required. The text of the comment.


Likes the specified feeditem.

  • id: Required. The id of the feeditem to like.


  • Rewrite tests using nock.
  • Hook up to



  • v0.0.1: Initial release.