You could use either a plugin or custom workflow activity. I would normally use a custom workflow activity, as you can create workflow logic to determine when it is called. Note that the assembly will need to be registered outside of the sandbox
Microsoft CRM MVP - http://mscrmuk.blogspot.com/ http://www.excitation.co.uk