Access & visibility
Allow support.GenerateInboxReply on your API key.
Acting member required. Send Brigg-Act-As with an approved member account ID. The key supplies permissions; the member selects whose data is used.
The selected member must be active and approved by the credential. This selects whose private data is used; the credential supplies permissions. Private ownership and project boundaries still apply.
Request fields
Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.
conversation_idstringRequiredConversation record ID from ListConversations. Use the same approved member who can read its inbox and messages; an inbox ID is not a conversation ID.
At least 1 character.
Generate a draft, then review it
Find a visible conversation with List conversations. This call waits for generation and returns the reply body directly; there is no job ID to poll. It uses the visible recent conversation and inbox instructions, excludes internal notes, and charges AI usage to the workspace. Very long threads use the latest 100 messages.
Display the returned text in an editable draft and review facts, promises and tone. No message, saved draft or customer notification is created by this call. A person can continue the reply in Brigg. A later generation may return different wording; use the same idempotency key to recover a lost response, and a new key only for a deliberate new generation.
Response
Returns 200 OK with a JSON body.
suggestionstringRequiredGenerated reply body as a text string, in the customer's language. It is neither saved nor sent. Review and edit it before presenting or sending it to the customer; treat generated text as untrusted content, not HTML.
Errors & retries
Set BRIGG_REQUEST_ID once for each logical action. The samples send it as Idempotency-Key. Reuse the same value and body on retries, including after a timeout; a missing response does not prove the action failed.
For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.
| HTTP status | Code | What to do |
|---|---|---|
| 400 | invalid_json |
Send a JSON object with Content-Type: application/json. |
| 400 | invalid_input |
Check the request fields and types. Supply a stable Idempotency-Key containing 1–200 characters. |
| 401 | invalid_key |
The workspace API key is missing, invalid or revoked. |
| 403 | forbidden |
Check the key’s operation and resource grants. Supply Brigg-Act-As with a member authorized by the key’s delegation grant. The selected member must be active and approved by the credential. This selects whose private data is used; the credential supplies permissions. Private ownership and project boundaries still apply. |
| 404 | not_found |
The requested operation or resource is not available to this credential. |
| 429 | rate_limited |
This member has reached the reply-generation rate limit. Honor Retry-After before retrying. |
| 422 | empty_thread |
The visible conversation has no customer or support message to draft from. Internal notes alone are not enough. |
| 503 | llm_unavailable |
No usable draft was generated. Wait before retrying; no reply was saved or sent. |
Next steps
JSON schemas
Use the complete schemas for validation or client generation.
Full request JSON schema
{
"type": "object",
"properties": {
"conversation_id": {
"type": "string",
"minLength": 1,
"description": "Conversation record ID from ListConversations. Use the same approved member who can read its inbox and messages; an inbox ID is not a conversation ID."
}
},
"required": [
"conversation_id"
],
"additionalProperties": false,
"examples": [
{
"conversation_id": "e_conversation_contacts"
}
]
}Full response JSON schema
{
"type": "object",
"properties": {
"suggestion": {
"type": "string",
"description": "Generated reply body as a text string, in the customer's language. It is neither saved nor sent. Review and edit it before presenting or sending it to the customer; treat generated text as untrusted content, not HTML."
}
},
"required": [
"suggestion"
],
"additionalProperties": false,
"examples": [
{
"suggestion": "You can upload a CSV with a header row and one contact per row. Include name and email columns. If you share the column names you use, I can help you check the mapping before importing."
}
]
}