Record one agent decision observation, or adopt/reject a decision-engine recommendation. Append-only; never creates, resolves or signals an Action.

Two shapes on one endpoint.

  1. DECISION OBSERVATION (existing, unchanged): send decisionType + decisionSummary.

  2. ENGINE DISPOSITION (v1.11.0): send disposition = ADOPTED | REJECTED | OVERRIDDEN | ACTED_ON together with the recommendation, stateFingerprint and engineVersion returned by GET /decisions/recommendation. This is the ONLY write path for the decision ledger: evaluating a recommendation never persists anything, and exactly one event is persisted per disposition. Retrying with the same Idempotency-Key replays the original event instead of creating a second one.

ATTRIBUTION (1.32.0): every credential class can write here, including a trial credential minted by POST /bootstrap. The event is attributed to the machine identity that presented the credential, and a storage failure answers 400 decision_not_recorded with a next step — never an internal constraint name.

post/decisions

Request

  • Base URL: https://forbiz.io/api/public/agent
  • URL: https://forbiz.io/api/public/agent/decisions
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

Recommended on every mutating request. A replay with the same key is NOT applied twice: the server answers { ok, idempotent_replay: true, first_seen_at, status } describing the first attempt.

Request body

decisionType'act' | 'wait' | 'investigate' | 'ask' | 'ignore' | 'store' | 'follow_up' | 'do_not_send' | 'reconcile' | 'escalate' | 'other'
subjectTypestring

e.g. action, outreach, campaign_target, person, organization.

subjectIdstring
decisionSummarystring

One short factual sentence.

priorContextUsedstring

Which stored context mattered, in plain language.

memoryEffectstring

How stored history changed the decision, if it did.

actionIdsUsedstring[]
outreachIdsUsedstring[]
personIdsUsedstring[]
organizationIdsUsedstring[]
evidenceIdsUsedstring[]
signalIdsUsedstring[]
executionIdsUsedstring[]
humanQuestionRequiredboolean
humanQuestionTextstring
priorHistoryChangedDecisionboolean
contradictionDetectedboolean
staleStateDetectedboolean
duplicateActionPreventedboolean
duplicateSendPreventedboolean
hardBounceReusePreventedboolean
activeConversationCollisionPreventedboolean
executionMismatchDetectedboolean
unverifiedClaimBlockedboolean
affectedTargetCountinteger
decisionConfidencenumber
disposition'ADOPTED' | 'REJECTED' | 'OVERRIDDEN' | 'ACTED_ON'
recommendationstring
stateFingerprintstring
engineVersionstring
projectIdstring
actionIdstring
rationalestring

Response

Decision recorded

okboolean
decision_event_idstring

Changes

No recorded changes to this operation across all 1 revision of this API.