Here are some general considerations:
- Reduce the number of on-page events in the workflow to as few as possible. If a large workflow, you can likely segment it to create an API workflow.
- Avoid using logic of newly-set states in your workflow. (Ie. if Step 1 is changing a state, then don’t have Step 2 use the state-based information of what you set in Step 1). It may work in-workflow, but my preference is to kickoff a workflow using only the state values as they were prior to triggering the workflow.
- In general, keep use of state changes to a minimum. (The more you have, the more points of failure you potentially have).
- When using an API workflow doesn’t make sense, use custom workflows to branch your workflow off.