Yes, you have several options.
There is a free, single phone at a time tool, provided by Cisco called "Cisco Phone Designer".
There is the IP Phone Application Service Development Notes which will give you the API for sending keystrokes to the phone. You basically create a macro and send the keys to the phone as if you were pressing the keys yourself.
There are also bulk phone managment tools out there. Here's one http://www.unifiedfx.com/