> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qobra.co/llms.txt
> Use this file to discover all available pages before exploring further.

# get_architect_turn

> Wait for the latest turn of a conversation with the Architect and read its result, without starting a new turn.

Wait for the latest turn of a conversation with the Architect and read what it
left, without starting anything. Call it when
[`ask_architect`](https://docs.qobra.co/mcp_documentation/tools/ask_architect), or an earlier call of
this tool, came back `running`.

Each call waits about 45 seconds. While the turn goes on, it answers `running`
again: call it again then.

The result reads like `ask_architect`'s. Relay the `answer`, or show a
question or a plan to validate to the user and send their reply with
`ask_architect`. A turn that ended on an error is raised as one.

Available only where the Qobra write tools beta is enabled and the Architect is
switched on for the company.

## Parameters

> [accordion] Body
>
> **conversation\_id** `string` *required*
>
> Id of the conversation whose latest turn to read: the one ask\_architect
> returned.

## Response

> [accordion] Body
>
> **status** `string`
>
> 'answered': the Architect finished its turn, its reply is in answer.
> 'awaiting\_user': it paused on a question (pending\_question) or on a plan to
> validate (pending\_plan); show it to the user and send their reply as the
> next instruction of this conversation with ask\_architect. 'running': a turn
> is still going; call get\_architect\_turn with this conversation\_id to keep
> waiting for it. One of: `answered`, `awaiting_user`, `running`.
>
> **conversation\_id** `string`
>
> The conversation this turn belongs to, the same one the web app shows on the
> compensation. Pass it back on every follow-up call.
>
> **answer** `string`
>
> The Architect's reply when status is 'answered', to relay to the user. Null
> otherwise.
>
> **pending\_question** `object`
>
> The question the Architect is waiting on, with the options it offers
> (multi\_select: several may be picked; the user may also answer in their own
> words). Set only when status is 'awaiting\_user'.
>
> **object properties**
>
> **question** `string`
>
> **options** `string[]`
>
> **multi\_select** `boolean`
>
> **pending\_plan** `object`
>
> The changes the Architect proposes, waiting for the user to approve or amend
> them; it applies nothing before. Set only when status is 'awaiting\_user'.
>
> **object properties**
>
> **summary** `string`
>
> **changes** `object[]`
>
> **object properties**
>
> **step** `integer`
>
> **action** `string`
>
> One of: `create`, `edit`, `delete`.
>
> **name** `string`
>
> **description** `string`
>
> **entity\_type** `string`
>
> **old** `string`
>
> **new** `string`
>
> **details** `string[]`
>
> **compensation** `object`
>
> The compensation to review, as get\_plan lists it: its draft version when it
> has one, the compensation itself otherwise. Publishing it is the user's
> decision, made in the Qobra web app.
>
> **object properties**
>
> **id** `string`
>
> **resource\_url** `string`
>
> Deep link to open this compensation's configuration in the Qobra web
> app.
>
> **name** `string`
>
> **recurring** `boolean`
>
> True when the compensation has no fixed date range (it applies every
> period).
>
> **start\_date** `string`
>
> YYYY-MM; null when the compensation is recurring.
>
> **end\_date** `string`
>
> YYYY-MM; null when the compensation is recurring.
>
> **period** `string`
>
> How often the compensation is calculated, on the company's fiscal
> calendar. EACH\_MONTH every month; EACH\_MONTH\_EXCEPT\_END\_OF\_QUARTER every
> month but the one each quarter closes on; EACH\_QUARTER, EACH\_SEMESTER
> and EACH\_YEAR at each period's close; Q1-Q4 once a year, at that
> quarter's close only.
>
> **status** `string`
>
> "live" when the compensation is active on the plan; "draft" while it is
> still being edited and not yet applied.
>
> **description** `string`
>
> The compensation's own free-text note, as written on the plan; null when
> it carries none.
>
> **flagged\_metrics** `object[]`
>
> The reporting metrics this compensation feeds, one entry per metric
> flagged on one of its variables. Empty when this compensation feeds none
> — which says nothing about the plan on its own: a plan is missing from a
> report built on a metric only when none of its compensations feeds that
> metric.
>
> **object properties**
>
> **id** `string`
>
> **name** `string`
>
> **type** `string`
>
> One of: `float`, `amount`, `percentage`, `string`, `picklist`,
> `multipicklist`, `bool`, `date`, `user`, `object`, `group`,
> `record_status`.
>
> **saved** `boolean`
>
> True: the turn's changes were saved as the compensation's draft, which
> nothing reads until the user publishes it. False: nothing was saved,
> save\_note says why. Null while a turn runs, and for a turn asked from the
> web app, which saves from its own page.
>
> **save\_note** `string`
>
> Why nothing was saved, or what the save had to change on the way, to tell
> the user. Null when there is nothing to add.
