---
title: "Instruct Business"
method: POST
path: "/margot/actions/instruct_business"
tags: ["margot"]
---

# Instruct Business

`POST /margot/actions/instruct_business`

## Request

- Base URL: `https://api.nanocorp.so` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nanocorp.so/margot/actions/instruct_business`
- Auth: HTTP bearer

Start one agent turn on the founder's business with the owner's request (gated, billed to the founder).

## Request body

- MargotInstructRequest
  - `external_id` string, nullable: The founder's NanoCorp user id (external_id on the helpdesk contact).
  - `email` string, nullable: The founder's email. Used as a fallback identity and a cross-check.
  - `company` string, required: The business, by its name or handle. Required: never auto-selected.
  - `limit` integer, nullable: Optional row limit for list actions.
  - `requested_by` 'customer' | 'team', required: 'customer': the Customer Agent acting on a founder's ticket. 'team': the Internal Agent acting for a teammate.
  - `ticket_id` string, required: The helpdesk ticket id (customer) or the Parahelp task id (team). A repeated call with the same ticket_id returns the first result instead of acting twice.
  - `ticket_url` string, nullable: https link to the ticket or task, for the audit line.
  - `team_member` string, nullable: The teammate's email. Required when requested_by is 'team'.
  - `instruction` string, required: What the business's agent should work on, in the owner's words, at most 1,000 characters.
  - `note` string, nullable: Internal note, never shown to the founder. Kept to its first 500 characters.

## Response `200`

Successful Response

- MargotInstructResponse
  - `found` boolean
  - `outcome` 'done' | 'already_done' | 'pending' | 'refused', required: done: it happened now. already_done: an earlier call of this ticket already did it. pending: the refund went to the bank and its result is unknown, a teammate checks it. refused: nothing happened.
  - `reason` string, nullable: The refusal or pending code. Null when done.
  - `handoff` boolean: True: hand the ticket to a human now.
  - `company_name` string, nullable
  - `turn_started` boolean: The business's agent started working on it.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-07** `33b623259808`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nanocorp/apis/nanocorp-api/changes/margot/actions/instruct_business/post.md)

---

[API](https://skmtc.dev/nanocorp/apis/nanocorp-api.md) - [All operations](https://skmtc.dev/nanocorp/apis/nanocorp-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nanocorp/apis/nanocorp-api/revisions/291bb76b720b?raw)
