Tuesday, January 11, 2005

Maintaining corporate employee directories - HR systems and Active Directory

With Exchange 2003, employee information that is held in Active Directory (ADS) and in the Email-System is the same. This makes it interesting to think about how to keep this data up to date.

There is another important system with employee data: the HR system. Today’s HR systems usually come with a web-based self service portal. To seamlessly authenticate users with the self service portal, the HR system does need a link between its employee database and ADS … which is a very valuable link! And this link will even “maintain itself” – if it’s broken, the employee will very quickly complain to the HR department.

Further on, the HR self service portals usually have a process that allows employees to file vacation requests. The self service portal will automatically ask the employee’s manager for approval. Again, this is very nice because it is a mechanism that will ensure that the employee-manager relationship that is stored in the HR system is always up to date. If it’s broken, the employee will quickly complain to the HR department as soon as he’s going to plan his next vacation …

Another nice thing about HR systems is that we can expect them to maintain up-to-date links between employees and cost centres. This is an important part of the company’s financial controlling and I can assure you that if any of these links is not up to date, it will very quickly be corrected when the head of the department will receive his next cost centre budget report.

Pulling this together: HR systems with self-service portal functionality and vacation approval mechanisms make sure some very important data links are always kept up to date:
- employee -> ADS account
- employee -> manager
- employee -> cost centre

Therefore I argue that manager + cost centre information should be pulled from the HR system and replicated into ADS. This can probably be done by a fairly easy script.

Phone numbers and room numbers are missing in this picture so far. They are often not kept in the HR system, which is probably ok because HR would not be able to keep them up to date anyway. So I guess the right place to be the “master” of this information is ADS – and the IS department is responsible for maintaining this information and keeping it in sync (manually) with the phone system and the IS hardware inventory. This actually makes sense: IS gets informed about phone number changes anyway, because IS has to implement them. IS gets informed when the employee’s room number is changing – at least sometimes. And if not, well, then IS will catch up when doing its annual hardware inventory …

Finally, a script is needed to pull the phone number and office/room information from ADS and update the HR system's database. Having this data in the HR system's SQL database makes sense then the data can be queried on the HR intranet - no need any more for manually updated employee/phone lists in Excel! Having this data in a SQL tables does also make it easier to integrate it into other systems as well (e.g. the IT helpdesk system).