Pick a workflow trigger from an actual system event: Record each event's producer, name, ID, state, timestamp and fields.; Use a documented trigger filter to exclude irrelevant events before a run begins.; Separate event ID from action identity: two events can request one order's fulfilment.
Image: Workflow Automation Guide

Workflow Design

Part of Designing reliable workflows between business applications

Choosing a workflow trigger from an actual system event

Select a workflow trigger by checking the business transition, event fields, filtering, replay behaviour and destination effect it permits.

Choose the trigger for the business transition that permits the next action. “A record changed” may include an address correction, a status update or an automated write. Name the source event, the state it must represent and the action it permits before configuring the workflow.

Suppose a paid order should open a fulfilment request. “Order created” might occur before payment, while “order modified” might occur repeatedly. The choice depends on what the order system emits and when its payment state is authoritative. These event names are illustrative.

Write the event contract

For each candidate event, record its producer, event name, event or record ID, relevant state, timestamp and available fields. Then ask:

  1. Does it occur after the business condition is confirmed?
  2. Can it occur for a change that should do nothing?
  3. Can another event lead to the same business action?
  4. What happens if the workflow is unavailable when it occurs?

A rule could read: “When the order system reports a transition to paid, and the order is eligible, request fulfilment once for that order.” This separates the signal, the eligibility check and the destination effect.

If the source exposes only a broader event, check its current state before writing to the destination.

Candidate signalQuestion to settle
Record createdIs the record already eligible?
Record modifiedWhich changed field or resulting state matters?
User presses a buttonIs the action authorised and is the record still eligible?
Scheduled scanWhich records qualify, and how will later scans avoid repeating work?

Event contract fields to record

  • Producer
  • Event name
  • Event or record ID
  • Relevant state
  • Timestamp
  • Available fields

Candidate signal and question to settle

Record created
Is the record already eligible?
Record modified
Which changed field or resulting state matters?
User presses a button
Is the action authorised and is the record still eligible?
Scheduled scan
Which records qualify, and how will later scans avoid repeating work?

Check delivery and filtering

A polling trigger periodically checks a connected service, while a webhook trigger receives notifications. Those labels alone do not establish what an integration will recover after an outage. Power Automate, for example, documents different behaviour for polling and webhook triggers when a flow is turned off and back on. Check the selected source and connector’s restart, retention and replay rules.

Use a documented trigger filter where it can exclude irrelevant events before a run begins. Check eligibility again near the destination action if source state may have changed. If an outbound write can trigger the same workflow, identify the loop and define how to break it.

Polling vs webhook triggers

Polling trigger
Periodically checks a connected service
Webhook trigger
Receives notifications
Restart, retention and replay
Check the selected source and connector’s restart, retention and replay rules

Separate event identity from action identity

An event ID can identify redelivery of one event. The business action needs its own stable reference: two different events could both request fulfilment for the same order. Agree with the destination owner on a lookup or safe retry rule for that reference.

Do not assume arrival order matches business order. If cancellation can follow payment, decide whether a late paid event should still create work. The source’s current state or version may need checking when the decision is made.

Check the selected trigger

In a safe environment, prepare an eligible transition, irrelevant edit, repeated event and stale event. Write the expected destination effect for each, then inspect trigger history and destination records. Check the restart path against the selected platform’s documentation.

Test the selected trigger

  1. Prepare an eligible transition, irrelevant edit, repeated event and stale event
  2. Write the expected destination effect for each
  3. Inspect trigger history and destination records
  4. Check the restart path against the selected platform’s documentation

More from Workflow Design