Route agent intakes to the teams that must review them before approval.
A review workflow sends an agent intake to the teams that must look at it
before it is approved. Each team is a responsibility. A review policy
says which responsibilities an intake needs. A policy is optional. Until one
is published, an intake has no review steps and approval follows only the
approver count and the same-person rule (Set who approves
intakes).
In the Console, open Govern → Review workflows → Responsibilities.
In New responsibility, enter an identifier (lowercase, for example
privacy), a label, the remit and the evidence reviewers expect, then
select Create responsibility.
Responsibilities, with a responsibility's members shown.
2
Give each one people
Select Show members on a responsibility. Add people by principal id,
bind a group with Bind group, or let a member delegate their seat for
up to 30 days. Do this before publishing. Nothing checks that a
responsibility has members, and a mandatory step with nobody in it cannot
be cleared. If that happens, add a member. The intake does not need to be
revised.
3
Draft a policy
Open Routing, select Start a draft, edit the JSON and select
Create draft. The next section has an example, and the policy
reference has the full format.
Routing: a published version and its JSON.
4
Validate it
Select the draft, then Validate. Problems are listed as path — code: message. A draft is never edited, so fix problems in a new draft.
5
Test it
On Test & publish, Simulate routing shows which steps a sample
intake would get. Preview impact on open intakes shows what the
version would change. Neither changes anything.
Test & publish: the Personal data sample routes to the Privacy review.
6
Publish it
A different user with review:publish selects Publish version N on
Test & publish. It applies to new submissions only.
This policy adds a mandatory Privacy review to every intake that lists pii
as a data class. It needs one person at most tiers and two at HIGH. It
needs an active responsibility named privacy with members.
When an intake was routed by a policy, its page shows a Review progress
card. A reviewer with a seat selects Clear this step on a mandatory step,
or adds a note. On a mandatory step a note is Advice, Changes requested
or Refusal. An advisory step takes Advice only. The approver
acknowledges any advice and then approves. The submitter never clears a
mandatory step, and the final approver needs no seat.These review conditions refuse approval. Other conditions can too, such as an
unconfirmed requester.
Message
Fix
step_unsatisfied
A mandatory step needs more people to clear it.
step_refused
A reviewer refused this revision. Reject the intake, or revise it to start a new revision.
step_changes_requested
Revise the intake.
advice_unacknowledged
Acknowledge the advice, then approve.
step_blocked
A step it depends on is not cleared yet.
distinct_actors
This person already cleared a step the policy says they cannot also approve.
An intake keeps the policy version that was published when it was submitted. To move it to a newer policy, withdraw it and submit again.
An intake submitted before any policy was published never gets review steps.
Revising an intake routes it again and makes earlier approvals and notes stop counting.
Review workflows are not available when the appliance is in evidence-only mode.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Sengol","colors":{"primary":"#1A56DB","light":"#4A90D9","dark":"#1A3A8F"},"favicon":"https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/favicon.svg?fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=6f4b4794d6371d3e181edf7a6170f4a4","navbar":{"primary":{"type":"button","label":"Request a pilot","href":"https://sengol.io/signup.html"}},"footer":{"socials":{"github":"https://github.com/sengol-io"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"sengol","hasAudioNarration":false,"actualSubdomain":"sengol","customDomains":["docs.sengol.io"],"gitSource":{"type":"github","owner":"sengol-io","repo":"sengol-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"e4b9bb53-d3ce-4561-af4a-1a0e88741b63","liveDeploymentHistoryId":"6ad6e81cd7b175403f1c1b9a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad6e81cd7b175403f1c1b9a"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ad6e81cd7b175403f1c1b9a","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Guides","count":5},{"language":"default","tag":"Journeys","count":5},{"language":"default","tag":"Reference","count":4},{"language":"default","tag":"Concepts","count":2},{"language":"default","tag":"Get started","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"guides/review-workflows","slug":"/guides/review-workflows","pageMetadata":{"title":"Review workflows","description":"Route agent intakes to the teams that must review them before approval.","href":"/guides/review-workflows"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Route agent intakes to the teams that must review them before approval.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,OptimizedImage,Step,Steps,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A review workflow sends an agent intake to the teams that must look at it\nbefore it is approved. Each team is a `,_jsx(_components.strong,{children:`responsibility`}),`. A `,_jsx(_components.strong,{children:`review policy`}),`\nsays which responsibilities an intake needs. A policy is optional. Until one\nis published, an intake has no review steps and approval follows only the\napprover count and the same-person rule (`,_jsx(_components.a,{href:`/journeys/platform-operator#7-set-who-approves-intakes`,children:`Set who approves\nintakes`}),`).`]}),`\n`,_jsx(Heading,{level:`2`,id:`who-does-what`,children:`Who does what`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Task`}),_jsx(_components.th,{children:`Needs`}),_jsx(_components.th,{children:`Roles`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Create responsibilities, add people, write and test a policy`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`review:configure`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`cro`}),`, `,_jsx(_components.code,{children:`admin`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Publish a policy`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`review:publish`}),`, interactive sign-in, and not the author`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`approver`}),`, `,_jsx(_components.code,{children:`admin`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Clear a review step`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`sod:approve`}),`, interactive sign-in, and a seat in the responsibility`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`approver`}),`, `,_jsx(_components.code,{children:`cro`}),`, `,_jsx(_components.code,{children:`validator`}),`, `,_jsx(_components.code,{children:`admin`})]})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The author of a policy cannot publish it. One administrator can do\neverything except publish, so a second person with `,_jsx(_components.code,{children:`review:publish`}),` is\nneeded.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`set-it-up`,children:`Set it up`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Create the responsibilities`,children:[_jsxs(_components.p,{children:[`In the Console, open `,_jsx(_components.strong,{children:`Govern → Review workflows → Responsibilities`}),`.\nIn `,_jsx(_components.strong,{children:`New responsibility`}),`, enter an identifier (lowercase, for example\n`,_jsx(_components.code,{children:`privacy`}),`), a label, the remit and the evidence reviewers expect, then\nselect `,_jsx(_components.strong,{children:`Create responsibility`}),`.`]}),_jsx(Frame,{caption:`Responsibilities, with a responsibility's members shown.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-responsibilities.png?fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=9d8e6505ee72a7d195598fa4dfb85273`,alt:`Review workflows Responsibilities tab showing the privacy responsibility with two members`,\"data-og-width\":`2880`,width:`2880`,\"data-og-height\":`1800`,height:`1800`,\"data-path\":`images/console-review-responsibilities.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-responsibilities.png?w=280\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=c5f96393023d0a5ff1dfa66c5d67ce1d 280w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-responsibilities.png?w=560\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=84b742da025968ceb573f5ca07be2721 560w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-responsibilities.png?w=840\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=57d6ee9266ea87294fe417912ef7a1cd 840w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-responsibilities.png?w=1100\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=3694e1080829b8684874298aa549b7c6 1100w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-responsibilities.png?w=1650\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=5f570c6805b7e2c6a00a7fbdd0792cb0 1650w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-responsibilities.png?w=2500\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=ae5b70e1c67a6d7a190995f450474972 2500w`})})]}),_jsx(Step,{title:`Give each one people`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Show members`}),` on a responsibility. Add people by principal id,\nbind a group with `,_jsx(_components.strong,{children:`Bind group`}),`, or let a member delegate their seat for\nup to 30 days. Do this before publishing. Nothing checks that a\nresponsibility has members, and a mandatory step with nobody in it cannot\nbe cleared. If that happens, add a member. The intake does not need to be\nrevised.`]})}),_jsxs(Step,{title:`Draft a policy`,children:[_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Routing`}),`, select `,_jsx(_components.strong,{children:`Start a draft`}),`, edit the JSON and select\n`,_jsx(_components.strong,{children:`Create draft`}),`. The next section has an example, and the `,_jsx(_components.a,{href:`/reference/review-policy`,children:`policy\nreference`}),` has the full format.`]}),_jsx(Frame,{caption:`Routing: a published version and its JSON.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-routing.png?fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=66a5124dc1d89709913d5c8899ac1739`,alt:`Review workflows Routing tab showing published version 1 and its policy JSON`,\"data-og-width\":`2880`,width:`2880`,\"data-og-height\":`1800`,height:`1800`,\"data-path\":`images/console-review-routing.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-routing.png?w=280\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=c168b051b7e28b39850231dd8324830e 280w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-routing.png?w=560\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=3efd22b73576fc86de20f33c285de996 560w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-routing.png?w=840\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=7071df85b373ae8cc18e90baedb13306 840w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-routing.png?w=1100\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=8f36dc7f01386f8848c9796fd4b42a79 1100w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-routing.png?w=1650\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=b26f2d66615e7c182dfb4865d5bd0d1a 1650w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-routing.png?w=2500\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=d8a5148e6d85c6bccd7d9f2dcd489fa0 2500w`})})]}),_jsx(Step,{title:`Validate it`,children:_jsxs(_components.p,{children:[`Select the draft, then `,_jsx(_components.strong,{children:`Validate`}),`. Problems are listed as `,_jsx(_components.code,{children:`path — code: message`}),`. A draft is never edited, so fix problems in a new draft.`]})}),_jsxs(Step,{title:`Test it`,children:[_jsxs(_components.p,{children:[`On `,_jsx(_components.strong,{children:`Test \u0026 publish`}),`, `,_jsx(_components.strong,{children:`Simulate routing`}),` shows which steps a sample\nintake would get. `,_jsx(_components.strong,{children:`Preview impact on open intakes`}),` shows what the\nversion would change. Neither changes anything.`]}),_jsx(Frame,{caption:`Test \u0026 publish: the Personal data sample routes to the Privacy review.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-publish.png?fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=67ae7a0447fa8b1d4a382d402707024d`,alt:`Test and publish tab simulating a personal data intake, which gets the privacy-review step`,\"data-og-width\":`2880`,width:`2880`,\"data-og-height\":`1800`,height:`1800`,\"data-path\":`images/console-review-publish.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-publish.png?w=280\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=32463729c3ccc9d64ffa608bd0a69679 280w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-publish.png?w=560\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=65001a7d22d2f9fde2953c7112e7a8d0 560w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-publish.png?w=840\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=5e74bc532249a35eb3afab0e418ffd20 840w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-publish.png?w=1100\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=f352a683ca26e864d2c54ed0f690162d 1100w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-publish.png?w=1650\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=decf3f3dfce600bf46008bfa5e3bab7e 1650w, https://mintcdn.com/sengol/WAzD6pTFOjHwDiMz/images/console-review-publish.png?w=2500\u0026fit=max\u0026auto=format\u0026n=WAzD6pTFOjHwDiMz\u0026q=85\u0026s=43c3eb83560094bec6ed650184fedc8a 2500w`})})]}),_jsx(Step,{title:`Publish it`,children:_jsxs(_components.p,{children:[`A different user with `,_jsx(_components.code,{children:`review:publish`}),` selects `,_jsx(_components.strong,{children:`Publish version N`}),` on\n`,_jsx(_components.strong,{children:`Test \u0026 publish`}),`. It applies to new submissions only.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`example`,children:`Example`}),`\n`,_jsxs(_components.p,{children:[`This policy adds a mandatory Privacy review to every intake that lists `,_jsx(_components.code,{children:`pii`}),`\nas a data class. It needs one person at most tiers and two at `,_jsx(_components.code,{children:`HIGH`}),`. It\nneeds an active responsibility named `,_jsx(_components.code,{children:`privacy`}),` with members.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`21`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`21`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"baseline_steps\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"final\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"steps\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"privacy-review\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"mandatory\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"responsibility_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"privacy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"required_by_tier\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"HIGH\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"final\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"final\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"responsibility_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"rules\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pii-data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"when\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"fact\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"data_classes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"op\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"contains\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pii\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"add_steps\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"privacy-review\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"explain\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Personal data needs a Privacy review\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"constraints\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`review-an-intake`,children:`Review an intake`}),`\n`,_jsxs(_components.p,{children:[`When an intake was routed by a policy, its page shows a `,_jsx(_components.strong,{children:`Review progress`}),`\ncard. A reviewer with a seat selects `,_jsx(_components.strong,{children:`Clear this step`}),` on a mandatory step,\nor adds a note. On a mandatory step a note is `,_jsx(_components.strong,{children:`Advice`}),`, `,_jsx(_components.strong,{children:`Changes requested`}),`\nor `,_jsx(_components.strong,{children:`Refusal`}),`. An advisory step takes `,_jsx(_components.strong,{children:`Advice`}),` only. The approver\nacknowledges any advice and then approves. The submitter never clears a\nmandatory step, and the final approver needs no seat.`]}),`\n`,_jsx(_components.p,{children:`These review conditions refuse approval. Other conditions can too, such as an\nunconfirmed requester.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Message`}),_jsx(_components.th,{children:`Fix`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`step_unsatisfied`})}),_jsx(_components.td,{children:`A mandatory step needs more people to clear it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`step_refused`})}),_jsx(_components.td,{children:`A reviewer refused this revision. Reject the intake, or revise it to start a new revision.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`step_changes_requested`})}),_jsx(_components.td,{children:`Revise the intake.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`advice_unacknowledged`})}),_jsx(_components.td,{children:`Acknowledge the advice, then approve.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`step_blocked`})}),_jsx(_components.td,{children:`A step it depends on is not cleared yet.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`distinct_actors`})}),_jsx(_components.td,{children:`This person already cleared a step the policy says they cannot also approve.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`good-to-know`,children:`Good to know`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`An intake keeps the policy version that was published when it was submitted. To move it to a newer policy, withdraw it and submit again.`}),`\n`,_jsx(_components.li,{children:`An intake submitted before any policy was published never gets review steps.`}),`\n`,_jsx(_components.li,{children:`Revising an intake routes it again and makes earlier approvals and notes stop counting.`}),`\n`,_jsx(_components.li,{children:`Review workflows are not available when the appliance is in evidence-only mode.`}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Review workflows","description":"Route agent intakes to the teams that must review them before approval.","href":"/guides/review-workflows"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Who does what","slug":"who-does-what","depth":2,"children":[]},{"title":"Set it up","slug":"set-it-up","depth":2,"children":[]},{"title":"Example","slug":"example","depth":2,"children":[]},{"title":"Review an intake","slug":"review-an-intake","depth":2,"children":[]},{"title":"Good to know","slug":"good-to-know","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"sengol","siteName":"Sengol","title":"Review workflows - Sengol","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-07T02:14:36.290Z","originalFileLocation":"guides/review-workflows.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Route agent intakes to the teams that must review them before approval.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Sengol\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/sengol/VZURZVuft2jdUHoc/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/sengol/VZURZVuft2jdUHoc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/sengol/VZURZVuft2jdUHoc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/sengol/VZURZVuft2jdUHoc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/sengol/VZURZVuft2jdUHoc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/sengol/VZURZVuft2jdUHoc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/sengol/VZURZVuft2jdUHoc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/sengol/VZURZVuft2jdUHoc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/sengol/VZURZVuft2jdUHoc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Review workflows - Sengol\">\u003cmeta data-mint-head property=\"og:description\" content=\"Route agent intakes to the teams that must review them before approval.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Sengol\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.sengol.io/guides/review-workflows\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://sengol.mintlify.app/_mintlify/api/og/v2?division=Guides\u0026amp;title=Review+workflows\u0026amp;description=Route+agent+intakes+to+the+teams+that+must+review+them+before+approval.\u0026amp;theme=63c05ba16e9a1b9a94743d12\u0026amp;signature=6d74c86e40eb56c1731b929e4582fda3700a811f8353de87c0a3a9566612f0a7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Review workflows - Sengol\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Route agent intakes to the teams that must review them before approval.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sengol.mintlify.app/_mintlify/api/og/v2?division=Guides\u0026amp;title=Review+workflows\u0026amp;description=Route+agent+intakes+to+the+teams+that+must+review+them+before+approval.\u0026amp;theme=63c05ba16e9a1b9a94743d12\u0026amp;signature=6d74c86e40eb56c1731b929e4582fda3700a811f8353de87c0a3a9566612f0a7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/sengol/VZURZVuft2jdUHoc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Sengol\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1A56DB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.sengol.io/guides/review-workflows\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/review-workflows.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.sengol.io/#organization\",\"name\":\"Sengol\",\"url\":\"https://docs.sengol.io\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.sengol.io#website\",\"name\":\"Sengol\",\"url\":\"https://docs.sengol.io\",\"publisher\":{\"@id\":\"https://docs.sengol.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.sengol.io/guides/review-workflows#webpage\",\"url\":\"https://docs.sengol.io/guides/review-workflows\",\"name\":\"Review workflows\",\"description\":\"Route agent intakes to the teams that must review them before approval.\",\"dateModified\":\"2026-10-07T02:14:36.290Z\",\"isPartOf\":{\"@id\":\"https://docs.sengol.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sengol.io/guides/review-workflows#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sengol.io/guides/review-workflows#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Guides\",\"item\":\"https://docs.sengol.io/guides/guardrails\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Review workflows\",\"item\":\"https://docs.sengol.io/guides/review-workflows\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.sengol.io/guides/review-workflows#article\",\"headline\":\"Review workflows\",\"name\":\"Review workflows\",\"description\":\"Route agent intakes to the teams that must review them before approval.\",\"url\":\"https://docs.sengol.io/guides/review-workflows\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sengol.io/guides/review-workflows#webpage\"},\"dateModified\":\"2026-10-07T02:14:36.290Z\",\"publisher\":{\"@id\":\"https://docs.sengol.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.sengol.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Sengol\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Sengol","nav":{"global":null,"groups":[{"group":"Get started","pages":[{"title":"Sengol","href":"/index"},{"title":"Quickstart","href":"/quickstart"}]},{"group":"Journeys","pages":[{"title":"Platform operator","href":"/journeys/platform-operator"},{"title":"AI developer","href":"/journeys/ai-developer"},{"title":"Compliance and risk","href":"/journeys/compliance-officer"},{"title":"Human reviewer","href":"/journeys/reviewer"},{"title":"Auditor or examiner","href":"/journeys/auditor"}]},{"group":"Concepts","pages":[{"title":"Audit records","href":"/concepts/audit-records"},{"title":"ControlBook","href":"/concepts/controlbook"}]},{"group":"Guides","pages":[{"title":"Guardrails","href":"/guides/guardrails"},{"title":"Gate releases in CI","href":"/guides/ci-gate"},{"title":"Access governance","description":"Roles, permissions, and the four-eyes controls built into Sengol.","href":"/guides/access-governance"},{"title":"Review workflows","href":"/guides/review-workflows"},{"title":"Credentials by journey","description":"Which credential a developer, admin, CI job or production agent uses today, what it can do, and how long it lives.","href":"/guides/credentials"}]},{"group":"Reference","pages":[{"title":"Evaluator library","href":"/reference/evaluator-library"},{"title":"CLI","href":"/reference/cli"},{"title":"Environment variables","href":"/reference/environment"},{"title":"Review policy reference","href":"/reference/review-policy"}]}]},"basePath":"","title":"Review workflows - Sengol","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["07c022d89b","a74be98ba7","a9bb46feb3"],"chunks":["Frame-PS-3COT9.js","DynamicMarkdown-BcnBltEQ.js","zoom-image-lightbox-B4-wUcHm.js","lightbox-handle-r17bVUz3.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}