Oddity Knowledge Base Development guide

Workflow Automation That Keeps Work Moving

7 min read Practical knowledge from OddityRead the article

Workflow automation uses software to move a defined process forward when an event occurs or a condition is met. It can route a request, check required information, assign work, update a record, or notify the next person. The useful result is a process that people can follow and recover when something goes wrong.

Automation does not guarantee faster service or a return on investment. A confusing process can become a faster source of confusion. The strongest starting point is a repeated task with clear rules, dependable information, and someone responsible for the outcome.

Choose a process you can explain

Look for work that crosses a predictable boundary: a submitted form becomes a service request, an approved quote becomes a job, or a completed inspection becomes a review task. Describe what starts the process, which information it needs, who makes decisions, and what counts as finished.

For a first project, prefer a contained workflow whose results can be checked easily. Routing an internal request to the right queue is usually easier to evaluate than automating an entire department. If staff disagree about the rules, resolve those disagreements before encoding them.

  • Good candidate: Repeated work with recognizable inputs, explicit decisions, and an observable result.
  • Needs preparation: Inconsistent records, unclear ownership, or several unofficial versions of the process.
  • Needs human judgment: Ambiguous requests, unusual commitments, or decisions whose consequences require careful review.

Measure the current process before changing it. Record how long a request waits, how much active handling it needs, and how often someone must correct it. These observations give the project a baseline. A busy-looking dashboard is not evidence that the work has improved.

Map one complete request from start to finish

Consider a hypothetical service company receiving requests for on-site equipment work. A customer submits a form, an employee checks the details, and a coordinator schedules the job. A useful first workflow might work like this:

  1. Receive: Store the submission with a unique request identifier and acknowledge receipt.
  2. Check: Confirm that the required contact, location, and equipment details are present. Route incomplete requests for follow-up.
  3. Classify: Apply agreed rules for service area and request type. Send uncertain cases to a person.
  4. Review: Ask an authorized employee to accept, decline, or request more information.
  5. Schedule: Create the scheduling task after acceptance, using the request identifier to connect the records.
  6. Confirm: Record the completed handoff and notify the appropriate person of the actual outcome.

The acknowledgment should say that a request was received. It should not imply that an appointment is booked before someone or something has confirmed a slot. Small distinctions in status and wording prevent customers from receiving promises the process has not fulfilled.

Name the states people need to see

States such as received, needs information, awaiting review, accepted, and scheduled make progress understandable. Define who or what may move a request between them. Also decide how to represent a rejection, cancellation, expired approval, and technical failure.

A failed notification should not erase a valid request. A successful notification should not be the sole evidence that a job exists. Keep the business record and the delivery status distinct so an employee can see what actually happened.

Keep approval decisions explicit

Automating an approval request does not require automating the decision. Software can gather the supporting information, identify the reviewer, track the response, and remind an owner when work is overdue. The person still applies the judgment that the process requires.

Microsoft's approval workflow documentation illustrates the distinction between sending a request and waiting for a human response. It also shows why the approval rule matters: a decision from any one reviewer is different from requiring all reviewers. Whatever tool you use, specify the intended rule rather than accepting a convenient default.

Decide what happens when a reviewer is absent or the request changes after approval. For the service example, an approval for one location should not silently authorize a different job at another location. Keep a record of the information reviewed, the decision, and the person making it.

Design for repeated events and partial failures

A form can be submitted twice. A service can accept a request while the confirmation response gets lost. An integration can finish its first action and fail on its second. These situations belong in the design, not in a list of surprises to handle after launch.

Make a retry safe

Use a stable identifier to recognize an action that has already been processed. If the scheduling system already created the job for a particular request, retrying the handoff should find that job rather than create another one. Developers call this property idempotency: repeating an operation has the same intended effect as performing it once.

AWS's retry with backoff guidance explains why temporary failures may merit another attempt, with increasing delays and a limit. It also stresses that retries need safe repeat behavior. Missing required information or invalid permissions usually needs correction; rapidly repeating the same failed action does not supply it.

For a custom system, reliable handoffs may require storing pending work alongside the business change. AWS describes this problem in its transactional outbox guidance. The business-level requirement is straightforward: a saved request must not disappear from the next step merely because notification failed. The implementation depends on the systems involved and still needs to handle duplicate delivery.

Give failures a visible owner

Build an exception queue that tells an employee which request needs attention, which step failed, and what has already succeeded. Include a safe route to retry, correct, cancel, or escalate the work. Avoid a generic error message that forces someone to reconstruct the whole process from email.

Microsoft's workflow error-handling guidance covers alternate failure paths, bounded retries, logging, and notifications. These are useful design questions even if you use another platform: where does failed work go, who sees it, and how does it resume?

Alerts should help somebody act. Sending a message for every successful step can bury the failure that matters. Keep routine history available for inspection and define which problems need immediate attention. Record enough context to diagnose a run while avoiding passwords, access tokens, and unnecessary customer information in logs.

Check access, connections, and operating costs

List the systems the workflow can read or change and the permissions each connection needs. Use approved service identities or platform-supported connections, give them only the access required, and assign an owner for renewal and maintenance. A workflow should not depend indefinitely on an employee's personal account staying active.

Verify the actual connector or API capabilities before committing to a design. Confirm required fields, supported actions, request limits, subscription requirements, and how credentials are renewed. Include usage charges, support time, and integration maintenance in the budget. A visual workflow builder can reduce coding work, but it does not remove operating responsibilities.

Document how to pause the automation and continue essential work manually. Pausing new runs does not necessarily cancel work already submitted to another system. Before restarting, reconcile in-flight requests so the recovery itself does not create duplicates.

Test a small rollout and measure the result

Use representative test records and verify outcomes in the destination systems. Check more than a green success indicator in the workflow tool. For the service request example, the request, approval, scheduling task, and customer message should describe the same job.

  • Submit a complete request and follow it to the intended result.
  • Submit incomplete information and confirm that someone can resolve it.
  • Repeat the same event and check for duplicate jobs or messages.
  • Interrupt a connection, restore it, and verify recovery.
  • Reject or cancel a request and confirm later actions stop appropriately.
  • Remove a reviewer's access and verify that the request remains owned.

Begin with a limited set of requests and compare waiting time, handling effort, errors, and unresolved work with the baseline. Look for time merely shifted elsewhere, such as a shorter intake step followed by more manual cleanup. Expand when the evidence supports it and the team can operate the process reliably.

If the missing piece is a connection between existing tools, start there. If the process requires a purpose-built interface or rules engine, compare the options in custom and off-the-shelf software. The software development life cycle can help organize the requirements, testing, release, and maintenance. A useful automation earns its place by making the work clearer and more dependable.

Oddity Support

How can we help?

Oddity Data Updates

Know when fresh data arrives.

Receive occasional notices about new and substantially updated database releases. No third-party mailing list.

Oddity Software

Details