Podio Workflow Automation (PWA) is an advanced automation tool available on all Podio Premium organizations. With PWA, you can automate key tasks and set up triggers for essential time-sensitive actions. PWA is so comprehensive that you are able to turn Podio into a much more sophisticated and dynamic business management system.
In this article we'll discuss the Top 10 Best Practices for Podio Workflow Automation.
1 - Organize flows with a numbering scheme
As the number of flows on a single app grows, you’ll want to group related flows together to make your automations easier to understand and maintain. The easiest way to do this is by prefacing each flow name with a number. So for example, you’ll want to create your first flow as “1-0-0 Item Created” which triggers when an item is created.
If you have flow 1-0-0 and also 1-1-1 and want to insert another one in between those, you can use a flow named with “1-0-0-1” at the beginning.
2 - Use category fields as buttons that act as triggers
In addition to being able to organize Podio items into logical groups, category fields can also provide a user interface for triggering automations. You can use a category field called “Ask Podio To…” or “Trigger Automation” that has one or more options that act as buttons.
In order to prevent multiple executions of the flow in case of delayed webhooks, it is recommended to set up the following filters on the “When Item Updated” flow
- If field [Ask Podio To..] has changed
- AND field [Ask Podio To..] = [field value to trigger the automation]
- AND field [Ask Podio To..] BEFORE does not equal [field value to trigger the automation]
3 - Use Manual Flows for Reusable automations
As the name suggests, manual flows can run automations that are triggered by a person. They are even more useful as reusable bits of automation code. Let’s say you have a category field that triggers an automation. You might have considered creating a “item updated” flow triggered on the category field. However, what if an item is pre-created with that category field set? You’ll likely want to run the same automation that triggers when the category field is updated manually. You’ll want to put your automations into a single manual flow, and trigger that manual flow from both your “item updated” and “item created” flows. In the future when you update or add to those automations, you’ll only need to do so in one place.
Take the example of a Project app that has a category field called “Status” with options “Not Started,” “In Progress,” and “Complete.” If you have an automation (such as the automated creation of Project tasks) that you want to trigger when the Status field is updated to “In Progress,” then put those automations in a manual flow. Then you can create an “Item Updated” flow that triggers on the update of the Status field to In Progress; this flow will simply call the manual flow. In the Item Created flow, you will have a sanity check (“if” action) to check if the Status field equals In Progress, and if so trigger the same manual flow. When future additions or changes are made to the automations, they can be done in one place within the manual flow.
4 - Implement a single “Item Created” flow
Over time you may end up with a number of different automations that run when an app item is created. It is best to group these into a single “item created” flow so that you can control the order of execution of those automations.
5 - Create a System Log App for Errors and Information
For certain events in the system, it will aid with analysis and debugging when key events are posted to a centralized System Log app. Within specific flows you can create items in the System log with diagnostic information you can refer to, such as variable values and error codes. For example, if you have a flow that sends an email, you may want to log failed sends by creating a System Log item after the Send Email event, which includes the “Globiflow-Most-Recent-Error” value and the email address.
The System Log app should include the following fields
- Short Description (single line text)
- Event Date/Time (date/time)
- Log Type (category) with options: Critical, Error, Informational
- Long Description (multi-line text field) includes variable information, error codes, a link to the source flow, and other information that will be useful later for analysis and debugging.
6 - Set up a “Bot” account for Podio Workflow Automation
By default, Podio Workflow Automation will be set up under a normal user account. In more sophisticated systems, it will be useful to set up Podio Workflow Automation under a special Podio user account, often called a “Bot” account. This account will be the one used to set up the Podio Workflow Automation flows, and certain actions that require a user account (instead of the app itself) can be done under the Bot account.
The Bot account should be used with systems outside of Podio that create items. For example, a Zapier Zap set up with a regular user account to create Podio items will cause that user account to follow every item created. This will increase the number of unwanted notifications. If the Bot account is used instead to create the Podio items via Zapier, then notifications occur in the Bot account where they don’t distract regular Podio users. The Bot account can also be used to set up Podio extensions, such as Procfu, MomentumTools, Quivvy Tools, and others, so that they aren’t specific to one person.
7 - Limit use of app-based date triggered flows in apps with lots of data
One of the flow types available on Podio Apps is the “Date Field” type. This is a convenient and easy-to-use flow type, but may be difficult to maintain on apps with thousands of items. In a large app, updating the logic in this type of flow can require a long time to save changes. In addition, for items to be included in this flow, they need to have been created with the “hook event” option, or manually by a user.
As an alternative, you can create views based on your date (and other) criteria, and create either “By Date or Day” or Webhook flows that have “Get Podio View” actions that collect the qualifying items and process the desired automation in a for/continue loop. The views can be created as private views under the Bot account so that users won’t accidentally delete them and affect the workflow.
8 - Use the "silent" option to minimize notifications
For “create item,” “update item,” and “add comment” actions you have the option of running this automation in silent mode. Silent mode prevents notifications from being sent about the event to followers of the item. Too many notifications can be a usability issue for end users, so you’ll want to use silent mode in many cases where item followers don’t require notification. (Note: silent mode does have the side-effect of preventing fields from automatically refreshing on the screen while a user has a specific item open)
9 - Ensure you have "Hook Event" enabled if you want other flows to trigger
One of the most common questions from new PWA developers is “I created an item in a flow, but the ‘item created’ flows didn’t trigger.” For “create item” and “update item” actions, enabling the “Hook Event” option ensures that flows on the app item being created or updated will trigger. As the text on the screenshot below indicates, you’ll want to make sure that your flows don’t end up creating infinite loops.
10 - Use Calc fields to store flow documentation
Complex flows will benefit from documentation. A great way to document your flows is by using a Calc action, using the variable name “Comment” and your documentation in the main field, as shown below. It would also be beneficial to use a specific calc action called “Change Log” at the end of your flow that you can update whenever you make changes to your flow.
BONUS - Where PWA doesn't meet all of your needs, Procfu and Quivvy Tools can help
Procfu is a popular extension to Podio Workflow Automation. If there’s anything you wished Podio Workflow Automation could do but can’t, there’s probably a Procfu script that can do it.
Quivvy Tools is a Podio extension that provides oversight of a Podio organization’s workspace & app structure, workflows, dependencies & errors. It can help answer questions such as “what flows update this specific field in an app?” So when changing a category field you know which flows need to be updated. And you know if you can delete a field, ensuring first that no flows are referencing that field.