Review work

After an agent takes action on a Business report, Middesk stores a record of its findings and how each finding was applied or not applied to the report. This record is represented as an agent_application in the API.

Understanding the results

Each agent_application answers three questions:

  • What did the agent find? resolutions contains one entry for each reviewed finding. original_artifact preserves what the agent proposed and any supporting sources, while agent_display_name identifies the agent that produced it.
  • What was done with those findings? outcome records how the finding was handled. resolved_artifact, correction, and exclusion show any adjustments. actions lists the actions taken, and execution_result shows whether they were applied, partially applied, left the report unchanged, or failed.
  • How did the Business report change? changes contains the effects recorded for completed actions, and report_transitions summarizes relevant before-and-after report values. At the application level, review_task_transitions records corresponding changes to the Business’s review tasks.

Checking screenshot capture status

When web evidence screenshot capture is enabled for your agents, the screenshot_captures object tells you whether captures have completed for an agent run.

ValueMeaningAction
nullThe run has no screenshot captures.Continue without waiting for captures.
{ "settled_at": null }At least one screenshot capture is pending.Wait for capture to finish.
{ "settled_at": "2026-09-09T10:00:00.123Z" }All screenshot capture attempts are complete. Failed and unavailable captures count as complete.Continue with your screenshot-dependent workflow.

Only one state indicates pending work, so check for that state rather than for a timestamp:

Check for pending screenshot captures
const captures = application.screenshot_captures;
const screenshotCapturePending =
captures !== null && captures.settled_at === null;

screenshot_captures reflects the status for the result’s run_id. If another agent run applies findings, its new result may show pending captures even when earlier results are settled.

When a screenshot is available, its source includes a screenshot_id that you can use to retrieve the Document.

If your workflow requires available screenshots in the Business PDF, retrieve the latest PDF when no captures are pending.

Receiving updates through webhooks

Middesk sends a business.updated event after an agent finishes acting on its findings and its agent_application can be reviewed. If screenshots are still pending, Middesk sends another business.updated event after all capture operations finish.

Default webhook payloads don’t include agent_applications. To include these records and their screenshot status, add agent_applications and the nested screenshot_captures field to a custom event schema.

Use the webhook event schema API to configure these fields, then choose which webhook events to subscribe to and when they are sent.

Agent application fields

Select only the fields your integration uses. The following selection shows every available field:

Agent application fields
{
id
agent_applications {
object
id
run_id
thread_id
created_at
finalized_at
applied_by {
id
name
email
}
screenshot_captures {
settled_at
}
review_task_transitions {
key
before
after
}
resolutions {
object
id
artifact_id
agent
agent_display_name
original_artifact
resolved_artifact
report_record {
object
id
}
artifact_field
outcome
decision_mode
proposed_value
resolved_value
correction {
id
original_value
resolved_value
reason
created_at
}
exclusion {
id
created_at
}
selected_sources
execution_result
actions {
id
type
status
completed_at
}
changes {
kind
report_record {
object
id
namespace
}
operation
before
after
}
report_transitions {
key
label
kind
before
after
before_intent
after_intent
}
}
}
}

Each result contains these top-level fields:

FieldTypeDescription
objectstringAlways agent_application.
idstringUnique identifier for the result.
run_idstringIdentifier for the run that produced the findings.
thread_idstring or nullIdentifier for the thread containing the run.
created_atstringISO 8601 timestamp when Middesk created the result.
finalized_atstringISO 8601 timestamp when Middesk finalized the result.
applied_byobject or nullThe id, name, and email of the person who applied the findings.
screenshot_capturesobject or nullWeb evidence screenshot capture status for the run.
review_task_transitionsarrayReview task changes, including the task key and JSON before and after values.
resolutionsarrayAgent findings and the decisions, adjustments, actions, and Business changes resulting from them.

Automating how findings are applied

Each item in resolutions includes decision_mode, which shows whether its outcome was chosen manually or automatically. Learn about configuring your interrupt policy to control which findings apply automatically and which pause for human review.

Get a demo
Contact your account manager or contact sales to inquire about access.