Jira Bot for Slack – Automatically get jira status and links in slack

Recently my team decided to try out Slack as a replacement for Skype messaging that we use on a daily basis.   Our reasons for looking for a replacement are likely similar to many other companies but here are a few:

  • Skype call quality diminished after recent upgrade
  • No ability to message a specific user in a group chat
  • No integration with our various other tools
  • Private chats where access only provided via invitation

We have been keeping an eye on Slack and have been interested in watching it develop and grow in the typical SF venture funded model.  Until recently our team resisted the move due the lack of a calling feature on Slack. We tried other tools for calling but could not find a good replacement for Skype.  Without a reliable calling option we simply could not leave Skype and felt the team was unlikely to want to run Skype and Slack at the same time.

When Slack announced the calls beta  we decided to give it a try and have had good luck.  The calls feature was a pre-requisite to our migration to Slack – now that we are moving the real benefits of Slack are starting to appear.


Slack recently announced an app store for applications and bots that integrate with Slack and provide enhanced features.  The program is backed by Slacks venture partners (Accel, Andreessen-Horowitz, Index Ventures, KPCB, Spark, and Social Capital) in the tune of $80M in investment in Slack App companies.

Our team immediately searched for a plugin/bot that would provide the following things:

  • Detection of Jira Issues mentioned in chats
  • Automatic retrieval of issue data
  • Automatic link to the task in Jira

This feature was something that we really liked when we had a trial of HipChat, Atlasssian’s answer to Skype and Slack.  The hipchat tools integration with Jira made it a really compelling offer, we ultimately decided to keep looking due to the lack of calling and higher price tag of HipChat at the time.

Our team has conversations that go like this very frequently:

  • Bob: What are you working on today?
  • Susan: I am stuck on MCS-1023 and then I am going to work on MCS-1033
  • Bob: Ok, let me take a look

In this case Susan is referring to a Jira issue by its ID in Jira.  This is the most common way we refer to issues and it ties into our wiki, bitbucket, branches, test plans, etc.   The current process would require Bob to go into Jira and find MCS-1023 or create a link by knowing the structure of the Jira ticket URLs.   The process probably takes 10 seconds but happens 100s of times a week.

The other issue is that other team members in the chat won’t go look up MCS-1023 and don’t really know what Susan is working on unless described on the daily scrum.   They may have unique insight that could help Susan from being stuck if they only knew what MCS-1023 was.

Our initial search for this plugin surprisingly returned no results.  There is a plugin that pushes Jira updates into Slack  but is a push methodology where updates in Jira create posts in Slack.   We were looking for mentions in Slack and info from Jira. Honestly we were surprised not to find this plugin.

One of my team members dug a bit deeper and found on GitHub a MIT licensed piece of code that appeared to do what we wanted.   They then setup node.js on their local machine, worked out some bugs, figured out how to connect and configure and was able to get a sudo functional version for our team.

The open source code needed more work to be a commercial offering.  It was lacking OAuth based integration for both Slack and Jira and needed deeper integration but was a great starting point.   At this point the team member decided to spend personal time to build out the bot and recently announced an open beta with a functional solution.   Our team has been testing with it and we are super excited to see where this goes.  I have also discussed Slack with other organizations during “conference season” and found a number of teams looking for this same feature.

Check it out if you are interested in a bot that integrates slack with jira feel free to take a look and join the beta group.  He told me he is going to accept the first 100 or so teams to determine if it makes sense to continue work on the bot.

In addition to the jira bot for slack we have found a number of other interesting Slack Apps.

Here are a few:

  • New Relic – Alerts and notifications from our application monitoring and performance tool
  • Giphy – A fun app that pulls in animated GIFs that prove to be hilarious
  • PagerDuty – ITOPS alerts, scheduling and incidents


After a long look and careful consideration we are going full steam into Slack based communication.  I will attempt to keep this site updated with our progress and results (so says the guy who has not posted since 2012).





Retina Macbook Battery Life after Migration Assitant – Dock Process Fix

I recently migrated from my 17″ MBP to the new retina macbook and noticed that the battery life was not what I was expecting. The retina macbook seemed to be running hot and that battery would drain far quicker than expected.

After a bit of Googling I found some discussions on the Apple forums around a hung “dock” process that can get left over after migration assistant runs. In my case I used a time machine backup to restore to the new Retina Mac so I decided to take a look.

I pulled up the activity monitor (global search for activity monitor) and sure enough I had a “dock” process running 100% of one of the cores. I took a look at my battery and had 75% power and 1:35 remaining (of course this is not what is expected with a new MBP).

If you see the same issue on your machine follow these steps to kill the dock process

1. Open terminal
2. Run the following commands (hit enter after each one)

cd ~/Library/Preferences/
rm com.apple.desktop.plist
killall Dock

The dock will disappear for a second and then come back and the process should be remove from your activity monitor. As soon as I ran the commands the system slowed down and the CPU usage went way down. As I type the battery says 64% and 3:12 hours – much more like it.

Hope this helps someone.

Add WYSIWYG Editor Support For Transactional Emails – Magento

Hi everyone,

I had a request today to to add WYSIWYG support to the transactional emails section under “System” > “Transactional Emails”.

It appears that it is pretty simple.
1. Add the Fonits WYSIWYG Editor Extension (free) – http://www.magentocommerce.com/magento-connect/fontis-wysiwyg-editor.html
2. Add the transactional emails text editor Text Area CSS ID value in “System” > “Configuration” > “Admin” > WYSIWYG Editor – the value is template_text
3. Save the config

You should how have WYSIWYG editing ability in transactional emails.

NOTE: You can also watch this Video for this info – http://vimeo.com/4316043

Does it work for you?

Magento Extension: Remove states from Magento

Download this free extension from Magento Connect here:  Remove or Change States and Regions

This extension lets you hide certain states on the front end to prevent customers from selecting them during checkout, estimate shipping, payment, etc. One common issue that many users of Magento (Community and Enterprise) is the list of states (regions for non-US) displayed to customers during checkout, registration and estimate shipping. When Magento is first installed a number of items exist for the United States that are not commonly shipped to or need specific shipping rules.

States commonly excluded from Magento stores:

  • Alaska
  • American Samoa
  • Federated States Of Micronesia
  • Guam
  • Hawaii
  • Marshall Islands
  • Northern Mariana Islands
  • Palau
  • Puerto Rico
  • Virgin Islands

In the case of my medical supplies business we had flat rate shipping to the lower 48 states from our supplier and were charged very high rates to ship to Hawaii, Alaska and other US territories and military locations.  We wanted to handle shipments to these locations offline to ensure we did not lose our shirts on shipping.

One way to achieve this is to modify the collections.php file here (created local version):  /app/code/core/Mage/Directory/Model/Mysql4/Region/Collection.php to alter the regions array returned.  If you like getting into the code and want to redo this update when you upgrade Magento this might work well for you.

There is now a FREE way remove displayed options in shipping and billing in the administrative interface via a new extension.  The “Remove or Change States and Regions” extension is the first extension developed in a joint venture between my company and Eltrino consulting (a team of Magento Rockstars based in Keiv).

State Manager Software Box

Video Demonstration

Instructions for use:

Here is how it works:

  1. Download and install the extension from Magento Connect
  2. Once installed a new menu item appears under “System” > “Configuration” > “Sales” with the title “Region Management”
  3. After selecting “Region Management” the configuration screen is displayed.   Click “New Region Configuration” to add exclusions for a Country (multiple Countries can be configured by adding additional configurations.
  4. Use the “Common Settings” select option to pre-select certain common settings or select specific values based on your needs.  The options here will be modified based on customer requests but to launch we will be providing the following options for the United States:
    • Lower 48 States – Excludes military locations, US territories and Alaska and Hawaii
    • 50 States Only – Excludes military locations and US territories
  5. Save your updates and clear the Magento Cache (System > Cache Management > Flush Magento Cache).
  6. Check your customer website and the excluded options will be removed.

The extension effects the system in the following ways:

  • Excluded States or Regions are removed from all Store Views and Websites
  • Excluded areas are not displayed as options for billing address, shipping address, estimate shipping and customer registration.

For customers who want further flexibility we are going to offer an enhanced version which allows these values to be specified by store/website and for each area (IE – allow Hawaii for registration but not for shipping address).   Please contact me if you are interested in this enhanced version and would like to give input on features and functions.

Download this free extension from Magento Connect here:  Remove or Change States and Regions

The extension is compatible with Community 1.4 – 1.6 and is currently under review for a Trusted Extension for MagentoGo.  The extension is also upgrade proof and will be modified if needed for future Magento versions.

Please let me know what you think in the comments area below.   If you have ideas for additional extensions you would like to see from the NjcMedia & Eltrino partnership please let me know.  We have around 40 extensions in mind which are all coming soon…

Magento OneStepCheckout A/B Test

Hi everyone,

One of my major Magento Enterprise customers just launched the onestepcheckout extsion – http://www.onestepcheckout.com as an A/B test with the existing multi-step checkout process. We are using Google Website Optimizer to test the variations and I will have some data starting today.

I will update this post with results of the test. I know others have experienced a lift with this extension and I am excited to see how it works for us.

Exclude Keynote from Google Analytics

Here is a quick post found on the keynote site on how to remove keynote sessions from Google Analytics. We recently added GA to the Ford site I run and wanted to exclude our monitoring visits to get real results.

Just implemented as suggested in this post: http://blogs.keynote.com/the_watch/2011/09/filtering-out-web-performance-monitoring-traffic-from-google-analytics.html

As the post notes it does not apply to historic traffic so I guess I have to wait until tomorrow to see if it really works.

Thanks Keynote!

960 Grid System

Check out this nice 960 pixel grid system. A great tool for designing websites that are proportional and look great.


Reset “Use Secure in Front End or Admin” in Database – Magento

I ran into an issue this week where I switched on SSL on a development site and then realized the SSL cert was not installed correctly. This is a big issue in Magento because there is no way to get back to the admin to switch it back off.

If this ever happens do the following to switch back:

1. Open up your admin panel (cPanel or other)
2. Go to phpMyAdmin (if MySql)
3. Find your Magento Database
4. Find table “core_config_data”
5. Look for the columns “web/secure/use_in_frontend” and “web/secure/use_in_adminhtml”
6. Edit both values, make them equal to “0”

After this is done you will be back in action.

Ford Accessories – Live

The new Ford Motor Company Accessories website is now launched on Magento Enterprise.

Go buy something!

Ford Accessories
Lincoln Accessories
Mercury Accessories

CMS Block in Transactional Email Template – Magento

Promotional content in order confirmation, shipping notice, etc emails are common in eCommerce – here is a tiny code snippet to make this possible in Magento (Community or Enterprise). I recently added this to the Enterprise implementation for my current customer and everything appears to be working without issue.

1. Add reference to CMS block in transactional email template

 {{block type="cms/block" block_id="ford-order-confirmation-promotions" }}

2. Create CMS block, make sure identifier of block matches.
3. Test your email

Simple right? This could be taken a step further with a little code to select a CMS block based on certain conditions (customer type, purchase history, etc). Anyone want to share that code?