Spree Wrapper to integrate Intercom.

Last updated on: October 31 at 12:26 PM

source code bug tracker
1 1 3
owner:  vinsol-spree-contrib

Spree Intercom


Try Spree Intercom for Spree master with direct deployment on Heroku:


Try Spree Intercom for Spree 3-4 with direct deployment on Heroku:



It is a spree wrapper for Intercom, using which you can directly install and use Intercom on your Spree store, create and update customers on Intercom, chat with customers, and track his movements on your store, without any hassle.

We currently support Rails 5 and Spree > 3.1


  1. Add this extension to your Gemfile with this line: ruby gem 'spree_intercom', github: 'vinsol-spree-contrib/spree-intercom'

  2. Install the gem using Bundler: ruby bundle install

  3. Copy & run migrations ruby bundle exec rails g spree_intercom:install

  4. Restart your server

If your server was running, restart it so that it can find the assets properly.

  1. Go to Admin Panel -> Configurations -> Intercom, and enter your Intercom application's id and access token.


To get your application id, you can have a look here

You can read more about access tokens here

Please ensure this step is performed before running the rake task.

  1. Run the rake task to add intercom id to your pre-existing users and move your users to Intercom.
 bundle exec rake intercom:process_users
  1. You need to specify the default url options in the specific environment files.
    For example, you need to add this in production.rb
 Rails.application.routes.default_url_options = { host: "mydomain.com", protocol: 'https' }


  1. If you have entered correct application id, and access token; AND have subscribed to Intercom's chat product [ message / inbox ], you should be able to see Intercom chat widget in your store.

Please visit your Intercom admin panel to customise it as per your wish.


  1. As soon as a user creates an account, or user updates his information [ name, phone ] is instantaneously uploaded on Intercom.

  2. You can engage with customers through the Intercom message widget.

As soon as the customer logs out of his account, his previous conversation is swiped off, to maintain customer's privacy.

  1. Events - You can track your customer's movement on your store

Currently, we are tracking the following events - * Customer creates his account. * Customer updates his account. * Customer logs into his account. * Customer logs out from his account. * Customer adds item in his cart. * Customer removes item from his cart. * Customer updates his cart. * Customer views a product. * Customer searches a product. * Customer applies a filter. * Checkout stages - address, delivery, payment, confirm. * Customer places an order. * Customer's order is shipped. * Customer returns an order. * Customer applies promotion. * Customer removes promotion.

  1. You can enable and disable the intercom functionality at the admin end.


First bundle your dependencies, then run rake. rake will default to building the dummy app if it does not exist, then it will run specs. The dummy app can be regenerated by using rake test_app.

bundle exec rake

When testing your applications integration with this extension you may use it's factories. Simply add this require statement to your spec_helper:

require 'spree_intercom/factories'

See It In Action

Youtube Video Tutorial


If you'd like to contribute, please take a look at the instructions for installing dependencies and crafting a good pull request.

Copyright (c) 2018 Vinsol, released under the New BSD License

Intercom javascript intercom wrapper leads lead capture extension intercom-api rails spree spree-ecommerce spree-extension
compatible spree versions
tags spree versions
master >= 3.1.0, < 4.0
Shivam Jain