> ## 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.

# create_request

> Open a request — the collaboration thread people settle a commission question in. Optionally attach it to a statement and post the first message.

Open a request — the collaboration thread people settle a commission question
in.

Optionally about one statement: pass `statement_user_id` and
`statement_period` together, and the request opens attached to that month's
payslip, exactly as it does from the statement page in the web app. The caller
is the request's author, and `message` is posted in their name.

The request opens with its author as the only member; add people to it, close
it or reassign it from the Qobra web app. Attachments are not supported here.

Available only where the Qobra write tools beta is enabled. Every write is
recorded in the audit trail as the `Qobra MCP` agent.

## Parameters

<Accordion title="Body" defaultOpen>
  <ParamField body="name" type="string" required>
    Title of the request, as it reads on the requests board — 'January
    commission looks low'. Keep it short; the detail goes in `message`.
  </ParamField>

  <ParamField body="message" type="string">
    First message to post in the thread, written as the caller. Omit to open
    the request with an empty thread.
  </ParamField>

  <ParamField body="statement_user_id" type="string">
    Id or exact email of the user whose statement the request is about. Pass
    it together with `statement_period`, or neither — a request need not be
    about a statement.
  </ParamField>

  <ParamField body="statement_period" type="string">
    Period of the statement the request is about, as YYYY-MM (e.g.
    '2026-03'). Pass it together with `statement_user_id`.
  </ParamField>
</Accordion>

## Response

<Accordion title="Body" defaultOpen>
  <ResponseField name="request" type="object">
    The request as it now exists — the same row list\_requests returns, so
    the id can be reused straight away. See
    [`list_requests`](/mcp_documentation/tools/list_requests) for the full
    field breakdown.
  </ResponseField>

  <ResponseField name="message" type="object">
    The first message, when one was posted with the request; null when the
    request was opened with no message.

    <Expandable title="object properties">
      <ResponseField name="author" type="object">
        <Expandable title="object properties">
          <ResponseField name="id" type="string" />

          <ResponseField name="email" type="string" />

          <ResponseField name="name" type="string" />
        </Expandable>
      </ResponseField>

      <ResponseField name="content" type="string">
        The message as written, with every @-mention rendered as `@<name>`
        instead of the raw user id the web app stores.
      </ResponseField>

      <ResponseField name="mentions" type="object[]">
        The users @-mentioned in `content`, in order of first appearance;
        empty when the message mentions nobody.

        <Expandable title="object properties">
          <ResponseField name="id" type="string" />

          <ResponseField name="email" type="string" />

          <ResponseField name="name" type="string" />
        </Expandable>
      </ResponseField>

      <ResponseField name="created_at" type="string" />

      <ResponseField name="last_modified_at" type="string" />
    </Expandable>
  </ResponseField>
</Accordion>
