I know that technicians in Service Desk can check a box and choose if they want that Service Desk notifies them when one item is assign to them. But I need that this email is sent when the workorder's state or service call's state is aproved not registered.
Can I change this out-of-box option to send email when one item is assigned to technicians or workgroup depends on the item's state?
You need to create a DB rule for each Service call and Work order, and it should look something like this:
When an item is opened or When an item is modified Where status="Approved" Send mail to "Assignment; To Person"
If you want to email the entire Workgroup, you can use: Send mail to "Assignment; To Workgroup" (and use an email alias for each Workgroup that contains the email of all individuals that are part of the WorkGroup).