Portal Community

How Auto-Decision Works

public async Task DecideAsync(SuspendedExecution suspension, CancellationToken ct)
{
    var decision = suspension.TimeoutBehavior == "AutoApprove"
                   ? ApprovalDecision.Approved
                   : ApprovalDecision.Rejected;

    var syntheticResponse = new ApprovalOutput
    {
        Decision      = decision,
        Comment       = $"Auto-{decision.ToString().ToLower()} after timeout. No response received.",
        ActorId       = "SYSTEM:AutoDecide",
        DecidedAt     = DateTimeOffset.UtcNow,
        IsAutoDecided = true
    };

    // Write synthetic decision to audit table
    await _decisionRepo.InsertAsync(new ApprovalDecision
    {
        ExecutionId    = suspension.ExecutionId,
        NodeId         = suspension.SuspendedNodeId,
        ActorId        = "SYSTEM:AutoDecide",
        Decision       = decision,
        IsAutoDecided  = true,
        DecidedAt      = DateTimeOffset.UtcNow
    }, ct);

    // Inject response and continue execution
    await _resumeService.ContinueWithAsync(suspension, syntheticResponse, ct);
}

Audit Trail Entry for Auto-Decision

// What appears in the approval audit trail for an auto-decision:
{
  "actorId"      : "SYSTEM:AutoDecide",
  "actorName"    : "System (Auto-Decision on Timeout)",
  "decision"     : "Approved",
  "comment"      : "Auto-approved after timeout. No response received.",
  "isAutoDecided": true,
  "decidedAt"    : "2026-05-25T18:00:00Z"
}

Compliance Note

For regulated industries (finance, healthcare, legal), auto-decisions may need explicit approval from your compliance team. Check your regulatory requirements before using AutoApprove in workflows that trigger regulated actions (e.g., payment disbursements, medical record changes).

Use Cases

ScenarioRecommendation
Employee onboarding form — optional manager reviewAutoApprove — no response means no objection
Expense claim — manager must approve or it expiresAutoReject — no response means claim denied, resubmit required
Contract approval — high-value, must have a humanEscalate or Fail — do not auto-decide