In addition to something that has came up in the 'Building a better campaigns module'-thread i've got the idea to start a thread for the workflows module.
The workflows module is a module that is one of the most powerfull modules in SugarCRM since it can let you automate a lot of actions/checks and notifications. I think this is an essential part of sales and marketing automation, which is highly advertised, and the correct use of this module can make a lot off difference for your company in efficiency, structure and customer satisfaction. With the help of this module the only limit are (should be) your ideas. It being the automated planning of calls, the automated notifications to clients for a meeting, a birthday reminder, etc. You name it, this module should let you do it.
However the possibilities for this module, I have run into many problems using it. Often resulting in comments that i should program a logic hook to get what i want. Offcourse you could do that, but this module is there in the first place to make sure you don't have to! So what are some of the problems I am running in to?
(1) You can not use the opt-out and invalid fields for email addresses in a workflow
- So you can not make workflows to alert users when either situation occurs.
(2) Like problem #1, I frequently run into fields (or even complete modules) that I can not use in the workflows module, and also in the alert templates as well.
- In the case of the complete modules that can not be reached it could be so that you need to make a relationship between the modules first. But this also sometimes can not be done.
A BIG problem I have is that you can not use the Users module in Meeting/Call templates. Luckily you can use the 'assigned to user'-fields with a workaround. But the 'created by user' and 'modified by user' fields can not be used. For a workflow I need to use the name + function + office/mobile phone numbers of the user who created the record. For this problem there is a bug created, #54919
(3) I've ran into major problems using the time-based modules
- I also received comments that these just don't work properly and you have to build logic hooks.
(4) You can not use OR statements in the workflows
- Which makes sure that you have to make a new workflow for each OR conditions > which for example in my case is 20 workflows instead of 1. In this topic someone also suggest to have the AND, OR, IF, THEN statements as an option. There are actually multiple topics about this issue. #3
(5) You can not mass update -/-reports-/- >> i meant workflows
- So you can not activate or de-activate them all at once.
(6) The filtering in alerts and actions is very limited in functionality.
- Which also makes sure that you have to create a new workflow for each filter.
(7) You can not mark workflows as favorite, like you can everywhere else in SugarCRM
(8) You can not create alerts messages where you can insert a variable
- F.e.: name, for either contact/lead/target, whichever is valid. Like you can do in the campaigns module > in the editor when creating an emailer. This will also save you from making duplicate alert messages + workflows. In this case you have to make 3 workflows and 3 alert messages, while with this feature you only have to make 1 of both.
(9) A very nice feature would also be to add some off the most common used workflows as standard workflows in SugarCRM.
- For input see this thread. Very nice offcourse would be some workflows based on the Campaigns module, especially massmailing campaigns.
(10) Option to archive e-mails that we're sent through a triggered workflow
- Now when you have triggered an alert email, this email is not archived anywhere in the system.
(11) When creating a Call/Meeting as an alert message you should always able to add invitees.
- When creating a call for a contact you can select invitees and it works fine, when creating a call for a lead you can not do this.
(12) When creating a Call/Meeting as an alert message you should always able to set the related module field.
- This way you can make sure that the call is not only connected to the contact/lead but also keep the hierarchy intact and connect the call to the account.
(13) Copy values between modules via workflow
So you can create workflows that take the variable of a field in the source module, and use that variable in a created action (or alert for that matter). Lets say:
If followup_reminder_c = x, create a call with time = x. where x is a variable, f.e.: 1 week / 2 weeks / 3 weeks / 1 month / 2 months / etcetera.
This means that the created call should have a variable which is NOT a fixed value. Now you have to create a workflow for the 1 week variable, another one for the 2 weeks variable, etc. etc.
See bug 34662 for more information
(14) The ability to compare two fields as a condition.
F.e.: assigned user EQUALS/ DOES NOT EQUAL user who created the record.
With this condition you can easily create a workflow that is fired only when the 'assigned to user' and 'created by user' match/do not match. I've ran into this problem while creating meeting confirmations:
- When I send a custom template 'meeting confirmation' to the customer, and the meeting itself is created in SugarCRM by the same user as the assigned user -> I want the alert to have the signature signed by this user.
-However when the meeting is created by a user that is NOT the assigned user, I want the alert to be signed by the user who created the meeting. But inside the message I want the name and phone number of the assigned user.
So I have two different messages with two different workflows, the easiest way to check which one of the two workflows have to be fired is to use this function. Because without it you will have to make a workflow for every combination of 'assigned to user' and 'created by user'.
(15) a suggestion for the Workflows module user interface; Conditions screen
Why not make the user interface of the Conditions screen look like the Reports module; Define filters screen. But add an extra column for the type of condition. As follows:
1. So you first select the field (instead of the type of condition)
2. In an added column you select the type of condition
3. And in the last column you select the value of the field and the multiplier (for lack of a better word, before/after/is/is not/ etc.)
+ This would have the huge benefit that you can use all of the fields that are related to a certain module, plus you can easily find those fields. This is not possible at the moment.
+ Also the interface would be much more user friendly this way imho.
(16) Use business hours in workflows
After reading this topic another nice request shows up. Using business hours in workflows so you can make tasks created in the weekend a higher priority than others. Another thing you could do with the use of business hours is to schedule a call in the future, but only during business hours. So when a workflow automatically plans a call after 30 days, and this is on a sunday, the call gets planned scheduled for the friday before/ the monday after.
(17) Partial matches in text fields
In this topic another good request for "includes" & "does not include" on the matching statements for text fields in workflows.
(18) Workflow logging
This topic has a nice improvement as well. Having a workflow log, separate from the CRM log, would be very helpfull. So you can track all actions of the workflows module in a separate file.
(19) Attachments in Alert email template
Nice addition in this topic about the ability to add attachments to an alert email template.
Offcourse it is not all bad with this module, but it could be a lot better. I was wondering if more people have problems using this module? If so, please state your problems, or solutions offcourse, in a comment below.
If you want to tell us what kind of great workflows you've created? Look at this topic