Spawning external dialogs from an Alfred workflow is known to be a sensitive issue. The majority of users using your workflow don't want to fiddle with multiple dialogs comming from seemingly nowhere. As such, we have defined some general guidelines for using dialogs in your workflows. Of course, we can't force you to follow these standards. But we do implore you to take into consideration the importance of presenting a quality workflow to the Alfred community.
As a principle, if you can implement setting a configuration in Alfred itself, work without dialogs.
Although, if toggling through Alfred starts to dampen the user's experience, it is better to use a dialog.
Being able to toggle the use of dialogs is always good thing to include in your workflows. Allowing the user to choose whether certain dialogs are spawned is a very professional approach to using dialogs in your workfow. However, be aware that if you allow dialogs to be disabled, you should have a backup method to accomplishing the same task through Alfred.
If you only need to convey information to the user, choose to use a notification over a dialog.
Please don't fill your dialog with a wall of text. Try and work your dialog's text down to one or two short and informative sentences.
Always include your workflow's name in the title of your dialog. This attempts to eliminate the ambiguity of from where a dialog is spawning.
Avoid automatically launching dialogs (if possible). Instead, make dialogs appear only after the user has selected an option in Alfred.
Progress bars should only be used for completing an action that will take long enough to warrant one. After all, a progress bar is only there to assure the user that a process is still running and hasn't gotten stuck.
It's generally a good practice to use icons of double quality to ensure a crisp display on all screens (default and retina).
The beautiful thing about CocoaDialog is the simplicity of the available dialogs. So please stick with a simple dialog rather than creating a complex and confusing one.
If your planning to launch multiple dialogs for a single action, but deffinitly need them, maybe think about using some other tool (like Pashua).
Never make the user write anything syntax specific. Make sure your workflow can parse, sanitize, and normalize any input you need to gather.