Socket
Socket
Sign inDemoInstall

ember-intercom-io

Package Overview
Dependencies
294
Maintainers
2
Versions
21
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ember-intercom-io

Idiomatic, deep Intercom.io integration for ember.js apps


Version published
Weekly downloads
14K
decreased by-30.85%
Maintainers
2
Install size
20.5 MB
Created
Weekly downloads
 

Changelog

Source

1.2.1 (2019-09-09)

Bug Fixes

  • user name existence as a requirement for valid user context (9448e28)

Readme

Source

ember-intercom-io

Build Status Code Climate Dependency Status devDependency Status Ember Observer Score

Intercom.io integration for Ember.js apps.

Setup

Install this addon with ember-cli ember install ember-intercom-io

Add the {{intercom-io}} component to one of your templates` The chat widget will appear whenever this component has been rendered, and should disappear whenever it's destroyed.

Configuration

In your config/environment.js file, you must provide your appId


module.exports = function(environment) {
  ...
  intercom: {
    appId: null, // <-- REPLACE WITH YOUR INTERCOM.IO app_id
    enabled: true, // <-- Setting to false in your testing environment prevents unneccessary network requests (true by default)
    userProperties: {
      createdAtProp: 'createdAt',
      emailProp: 'email',
      nameProp: 'name',
      userHashProp: 'hash',
      userIdProp: 'id'
    }
  },
  ...
};

Users vs Leads

In the intercom.io world, a lead is a visitor to your site or app, without an email or name associated with them. A user has a name and email, and is a good construct for tracking the history of all interactions w/ a single person.

You can make ember-intercom-io aware of a "user" context (shifting into "users" mode instead of "leads" mode) by adding an object to the intercom service (i.e., your user authentication service).

When the application updates the intercom.user object, changes will be sent to Intercom and reflected in your Intercom dashboard.

app/services/authentication.js

import Service, {inject as service} from '@ember/service';

export default Service.extend({
  intercom: service(), // the intercom service
  didLogin(user) {
    ...
    this.get('intercom').set('user.name', 'Joe Username');
    this.get('intercom').set('user.email', 'joe@example.com');
    this.get('intercom').set('user.createdAt', 1447135065173);
  }
});

Custom Properties

To send custom properties on to intercom, add them to the intercom.user object. All property names will be underscored prior to being sent. undefined values will be removed (however, null is kept).

  let customProperties = {
    myCustomThing: 1,
    numberOfCats: false,
    notDefined: undefined
  }
  set(this, 'intercom.user', customProperties);

becomes

{
  my_custom_thing: 1,
  number_of_cats: false
}

API

The intercom service exposes several public API methods that match Intercom.com's existing Javascript API. For full details on the client API, read the Intercom docs.

Properties

NameType
autoUpdateBoolean
hideDefaultLauncherBoolean
isOpenBoolean
isBootedBoolean
unreadCountInteger
userObject

Methods

The following intercom methods are implemented. See services/intercom.js for full details.

boot()

update()

shutdown()

hide()

show()

showMessages()

showNewMessage()

trackEvent()

getVisitorId() Returns the current id of the logged in user.

Events

Subscribe to events in your app with event listeners:

//fancy-component.js

...

intercom: service(),
newMessageAlert: on('intercom.unreadCountChange', function() {
    alert('Unread Count Changed!');
}),

...

Available Events

(Read the Intercom documentation for full details)[https://developers.intercom.com/v2.0/docs/intercom-javascript#section-intercomonhide]

Ember EventIntercom Event
hideonHide
showonShow
unreadCountChangeonUnreadCountChange

Installation

  • git clone this repository
  • npm install

Linting

  • npm run lint:hbs
  • npm run lint:js
  • npm run lint:js -- --fix

Running tests

  • ember test – Runs the test suite on the current Ember version
  • ember test --server – Runs the test suite in "watch mode"
  • ember try:each – Runs the test suite against multiple Ember versions

Running the dummy application

For more information on using ember-cli, visit http://www.ember-cli.com/.

Copyright (c) 2015 Levanto Financial, 2016-18 Mike Works, Inc.

Keywords

FAQs

Last updated on 09 Sep 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc