Handling a failed integration in the user interface: A pressed button does not prove a saved result.; For unknown outcomes, check the source or ask for help before submitting again.; Retain unsent form entries; do not silently queue a write users cannot see.
Image: No-Code Business Guide

Forms

Part of No-code app integrations

Handling a failed integration in the user interface

Show users whether an integrated action succeeded, failed or remains uncertain, while preserving work and giving a safe next step.

When a connected action fails, tell the user what is known and what they can safely do next. A pressed button does not prove a saved result. A timeout, lost response or workflow error may leave the outcome uncertain; even an error after several steps may follow a change already made in the source system.

Show the right outcome

StateMessage the user needsNext action
Confirmed successWhat completed, with a reference if availableContinue
Confirmed failureWhat did not complete and whether entered details remainCorrect the input or seek help
Outcome unknownConfirmation is missingCheck the source or ask for help before submitting again

Use language tied to the task. “We couldn't confirm your request. Your entries are still here” is more useful than a raw error code when the outcome is unknown.

If the source rejects an invalid field before taking the action, identify what the user can correct. Show “failed” only when the relevant action is known not to have completed.

Outcome states and safe next actions

  • Confirmed successTell the user what completed, with a reference if available. Next action: continue.
  • Confirmed failureTell the user what did not complete and whether entered details remain. Next action: correct the input or seek help.
  • Outcome unknownTell the user confirmation is missing. Next action: check the source or ask for help before submitting again.

Keep work and diagnosis separate

Where the app permits it, retain unsent form entries. Do not silently queue a write unless users can see what is pending and the owner has a way to prevent duplicate submissions.

Keep a request reference that staff can use to check the source system.

The owner may need the time, operation, safe record identifier and response category. The user usually needs less detail.

Keep credentials, sensitive request bodies and administrator-only responses out of the screen and routine diagnostics.

Power Fx offers IfError to handle an error; Microsoft documents that a second chained Patch can still be attempted after the first fails unless the formula controls the flow. An errored run alone does not prove that no earlier step took effect.

Give the user a safe route forward

A validation rejection may call for correction. An expired connection needs attention before the action can proceed.

If the result cannot be established, give the user a support route instead of an unqualified retry instruction.

Before release, use fictional records to check a rejected field, denied access, disconnected connection and timeout where these cases can be simulated safely. Compare the message, retained input and source-system state.

This check must be carried out in the actual configured app.

Pre-release failure-state checks

  • Use fictional records to check a rejected field
  • Use fictional records to check denied access
  • Use fictional records to check a disconnected connection
  • Use fictional records to check a timeout where it can be simulated safely
  • Compare the message, retained input and source-system state
  • Carry out the check in the actual configured app

More from Forms