Automatically send sms upon different events

I am looking for an easy way to implement automatic sms on different events. Like:

  1. Leave request received (sms to leave approver)
  2. Leave accepted/rejected (sms to employee)
  3. PO sent (sms to vendor with item name and quantity)
  4. Payment received (to client/customer)
  5. Greetings/thank you text to customer upon creation of a contract, etc.
    and some other similar/different events.

I looked upon the issue over the forum but could not find any exact solution.