ATTN: JAY - Intercom

Hey dude, 

You may already have this in the works but… Any chance of implementing a notification when a user has received a new message on intercom? 

Surely there’s a 3rd party javascript library that’s straight forward to implement? 

Quick look on stackoverflow / a google here are some options: 


https://notifyjs.com/

http://ned.im/noty/#/about

http://wavded.github.io/humane-js/

https://github.com/alertifyjs/alertify.js - very lightweight - 8kb
 
http://codeseven.github.io/toastr/

You normal get an email and a notification when you log in…

Yeah I know but that doesn’t prove to be working for another user I communicate with as he gets emails a lot later than when I send the message. 

Pretty easy to do… I only know this because I’m a developer 

^^^ watch out, Jay will add you to the git repo and tell you to fill your boots.

its in the Dev thread

On-site notifications are in development at the moment Jax. 

We already have a notification engine in the server-side app part of LB. There’s some refactoring to do here and there to handle splitting out between notification destinations, i.e. email and on-site, some persistence stuff to add in (emails are just straight events-to-emails with some buffering logic) so you keep seeing unseen notifications when you revisit and then some real-time web stuff for the front-end (SignalR) to feed all that to the browser. It’s not quite as simple as adding in a JS library, but it’s not work from the ground-up like photo uploads were… So coming soon :slight_smile:

That reminds me, I need to see if Amazon are throttling our email delivery. We should be getting emails within a second or two of the PM’s being created, etc.

Jay, does it require the destination user to be logged in for the notification email to trigger?

I’ve had a couple of emails but only after 2 or 3 days since the message was sent. Cheers for the info tho! :slight_smile:

No, emails are sent asynchronously immediately after messages or posts are made. I’ll have to look into the delivery side of things. We don’t do delivery ourselves see. There might be some throttling going on and limits I need to ask to be raised, etc.

I noticed a bug with the intercom. I was writing a message on my laptop and pasted in a quote. I then decided to increase the height of the text area as it’s far far too small to view multi-line messages. I opened my Chrome inspector to change the height and as I have it on the right the page went into mobile mode. I noticed that the quote actually changed to raw HTML instead of the formatted one (as in “<pre><div>blah…”.

When I closed the inspector and returned to normal mode it was showing as a quote again. Not sure if that’s intended but just throwing it out here so that it’s known.

Well, I wouldn’t call it a bug Cypher as you’re hacking with the app and using it otherwise in accordance with how it was designed… but… yeah the mobile and desktop versions of Intercom use different text input methods, which would cause problems for quotes as they’re expressed differently depending on whether you’re in plain text or rich-text mode :slight_smile:

I have plans to back away from the rich-text mode as it doesn’t work flawlessly from a user experience perspective and makes security a little more difficult for me.

Intercom on-site notifications in development at the moment. Proof of concept complete. Real time web, here we come.

Nice work! 

Notifications; not quite so straight-forward :slight_smile:

Attachments

photo_upload.png

Oh I get that but the above is your logic which should be pretty quick to write up depending how you do it / what you’re using. I’d imagine you’re doing this server side as you mentioned the way the site is built it’s not a simple client side change. 

Surely there’s some existing code out there you can rip to help the process! 

LB uses a pretty conventional N-Tier architecture:

  1. Application Layer with call-outs to cloud services (server-side - C# class library)
  2. Website Layer (server-side - ASP.NET MVC)
  3. Model-View-View-Model (MVVM) Layer (client-side - JQuery & KnockoutJS)

The event-raising is already built into the application layer as well as email notification delivery. We’re just rejigging the business logic already in place in the application layer to include real-time web stuff using SignalR/Web Sockets (passed in from the website layer). There’s no need to use anything pre-existing for all this, the ground work’s there.

Oh, and it got a little more involved last night when I noticed a problem! :)

Attachments

photo_upload.png

Awesome stuff, looking forward to seeing the end result!