Bullhorn vs. Exchange 2003
One of the companies for which I manage IT uses Bullhorn’s applicant tracking software for their recruitment workflow.
That company also uses the now-ancient Exchange 2003 for their email.
But, Bullhorn doesn’t officially support integration with Exchange 2003.
First off, “integration” is a strong word. It implies that our servers will pass information back and forth and stay in some meaningfully synchronized state. That’s not the goal in this case. The integration simply consists of passing all emails that are sent and received by our recruiters to Bullhorn’s servers.
Once Bullhorn receives the emails, they’re parsed and can be viewed in the Activity Center and/or under the contact record to which they apply (using email address matching).
The integration path I wanted to take was to use message journaling in Exchange. In essence this forwards a copy of every single message sent and received on our server to Bullhorn. There are other more convoluted options, but this seemed to be the most straightforward from a sysadmin perspective.
Unlike later versions, Exchange 2003 doesn’t support journaling rules. Those would have allowed me to journal messages that were to/from a particular user or set of users.
Instead Exchange 2003 supports mailbox store-level journaling. In other words, every email to/from a mailbox on a particular store is “forwarded”. (It’s technically different than forwarding, but is conceptually similar enough for this discussion, so I’ll drop the quotes going forward.)
This isn’t a problem in my case; Our organization is relatively small, and so it was trivial to move all of my Bullhorn users to one mailbox store, and move some other users out.
I’m not going to go into depth regarding setting up journaling because there are quite a few good resources available on the subject:
Google around; You’ll find a lot more information.
Create the contacts
The short of it is that you first need to obtain from Bullhorn your tracker address. It looks something like this:
You’ll also need tracker addresses for each of your Bullhorn users. Those look something like this:
In Active Directory Users and Computers create a contact for each of your Bullhorn tracker addresses. For sanity’s sake I’ll make up some examples.
Let’s say our corporate tracking address is:
And we have two Bullhorn users, each with these tracker addresses:
Malcolm Reynolds – firstname.lastname@example.org
Zoe Washburne – email@example.com
Here’s what it should look like when you create the corporate tracker contact:
Of course you can give the contact a first and last name that you find to be appropriate. But that works for me!
Modify the “E-mail” field, and add a new “SMTP Address” using your corporate tracker email.
Once the contact is created, go back in and edit it. Under the “Exchange Advanced” tab, check the box next to “Hide from Exchange address lists”. This will help prevent users from sending email directly to this address.
There are more advanced ways to prevent users from emailing an internal recipient. Since the risk of that happening is low and I like to have the ability to run tests later by manually sending emails, I haven’t bothered.
Now create contact records for Malcolm and Zoe. It’s the same process, though I would name them in this fashion:
Malcolm Reynolds (Bullhorn Tracking)
Zoe Washburne (Bullhorn Tracking)
By adding “(Bullhorn Tracking)” to their last name (or just to the display name) there won’t be any confusion in the future as to whether you’re looking at their user account or their contact record.
I’ve been frustrated by this myself: Depending upon your Active Directory and Exchange environment, it may take some time for the contact records to propagate to your Exchange server(s). Be patient if you don’t see them right away.
I’m assuming that at this point you have all of your Bullhorn users on one mailbox store. In my example, it’s going to be “Mailbox Store 2″.
In Exchange System Manager (ESM), find the store and open the properties.
Check the box next to “Archive all messages sent or received by mailboxes on this store”. It doesn’t say “journaling” — why make it easy? — but in this context the “archive” is the journal.
Click “Browse” and locate your “Bullhorn Tracker (Corporate)” contact.
Apologies that in this screenshot I left off the “(Corporate)” part. It’s the same contact.
Hit “OK” to set the contact, and then “OK” to save the mailbox store properties.
Congratulations! You’ve now set up journaling! (Pretty easy, huh?)
But what about envelope journaling?
Exchange 2007 and above only do envelope journaling. Exchange 2003 does not have the ability to do envelope journaling by default, and there is no way to enable it in the GUI. So is that why Bullhorn doesn’t work with Exchange 2003?
The article from MSExchange.org that I posted above talks all about configuring envelope journaling in 2003. I found that it makes no difference to Bullhorn whether it’s enabled or not. Hence I don’t think that there’s a point to configuring it. (Though it couldn’t hurt, and it’s really easy!)
Incidentally, I also found a few articles relating to email journaling to a third-party compliance solution. One of them discussed that Exchange 2003 does not actually forward the full envelope over SMTP even with envelope journaling enabled. Their suggestion was to create a local journaling mailbox, then to enable user-level forwarding for that mailbox to the third-party receiver. I found that did not fix the situation either.
So are we done?
You’d think that would be that. We want to track both incoming and outgoing emails in Bullhorn, and Exchange 2003 is now forwarding both incoming and outgoing emails to your Bullhorn tracking address.
But here’s the rub: It doesn’t work for inbound emails, and since Bullhorn won’t talk to me about my integration because I use Exchange 2003 I have no idea why it doesn’t work. It should work, but it doesn’t.
Email forwarding to the rescue
To get inbound emails to show up in Bullhorn I had to configure email forwarding at the user account level in addition to journaling!
If you’re the usual Exchange administrator then this should be a cakewalk for you. Let’s skip right to the screenshot:
Open up the trusty old Active Directory Users and Computers management console.
Locate the Active Directory user account for your Bullhorn user and open its properties.
Click on the “Exchange General” tab, and then click the “Delivery Options..” button.
In the delivery options dialog, click the radio button next to “Forward to:”.
Click the “Modify” button and find the contact for your Bullhorn user. In this case it’s “Malcolm Reynolds (Bullhorn Tracking)”.
Check the box next to “Deliver messages to both forwarding address and mailbox”. (That’s an easy one to forget!)
Click “OK” to save and close the delivery options, and “OK” to save and close the user’s properties.
And that’s it!
You should now see emails flowing into your Bullhorn Activity Center and/or to your candidates’ and contacts’ activity log under “Email”:
Here you can see that both inbound and outbound emails are associated with my candidate record!
The eagle-eyed reader may have noticed that the first email in the list has a timestamp of 1139 (11:39 AM) in the subject field, but the “Date Sent” column says 6:36 PM. This is not an issue with the integration; For some reason the Bullhorn website was extremely slow today to the point of being unusable. I’m assuming that’s the reason that the email didn’t show up in our account for 7 hours.
I created a candidate record in the system under my name, and gave it two of my personal email addresses.
I’m not a Bullhorn user, but I hopped onto one of our users’ email accounts and sent a test email (or two) to my personal address.
I also sent an email (or eight) to the Bullhorn user’s corporate email address.
Because my personal email address matched an email address on my candidate record, those emails show up in the “Activity” tab under “Email”!
If they don’t show up under a candidate or contact record, they’re probably in the Activity Center (under the main menu).
If you aren’t seeing any messages in Bullhorn, try journaling messages to an external email account that you control.
For example, if your personal email address is firstname.lastname@example.org then set up an Exchange contact just as you did with the Bullhorn tracking contact. Change your mailbox store’s journal settings to use that contact.
You should start seeing messages in that GMail account. If no messages come through then the problem is likely on your server(s) and/or network and not with Bullhorn. (As always, give it some time for that journaling change to propagate through your Active Directory and Exchange servers. Oh, and check your spam folder!)
At some point we may start seeing duplicate emails in the system. Bullhorn appears to be ignoring inbound emails that are journaled to the corporate tracking email address. That behavior may later be fixed on Bullhorn’s end, in which case we may see the situation where both the user-level forwarded emails and the inbound journaled emails show up in our account!
No official Bullhorn support. I’ve done my best to get this integration to work. If it breaks down the line then we may just be plain out of luck.
This is not an ideal situation for a large organization. We have 3 Bullhorn users, and likely won’t be increasing that number tremendously over the next few years.
If your organization is large (that’s a subjective term, I know) then you may wind up putting too much load on your server and/or network by journaling and forwarding messages for a lot of users. You may also run out of mailbox stores! (They have size and quantity limits.)
Yes, integration with Exchange should work with just jounaling in place and without the need to forward emails at the user level.
And believe me, I tried every which way to get inbound journaled messages to show up in Bullhorn! Feel free to try some other solutions yourself (and if you succeed let me know), but I’m hoping that this article saves you the time. It cost me a lot of mine!
Of course, we haven’t even talked about calendar integration. That’ll be a post for another day, perhaps.