Skip to content

API reference

Add brief context

customers.AddBriefContextWriteMember delegation

Add a note, website, document or record to a record’s briefing sources in Brigg. Keep the returned source_id for removal; adding the same reference again reuses it. Website content must be fetched before regeneration can start. Review the brief in Brigg; the public record model does not expose its body.

POST/v1/operations/customers.AddBriefContext
On this page

Access & visibility

Allow customers.AddBriefContext 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.

Set up authentication · Choose permissions

Request fields

Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.

targetobjectRequired

The Company, Person or Meeting whose brief receives the context. Use its exact record type and top-level ID.

Nested fields
typestringRequired

Exact type of the target record: core:Company, core:Person or core:Meeting.

At least 1 character. At most 60 characters.

idstringRequired

Top-level record ID from ListCompanies, ListPeople or ListMeetings matching target.type.

At least 1 character. At most 80 characters.

itemobject (4 variants)Required

One source to attach, chosen by kind. Supply the fields for that variant only; this is an input source, not a returned record.

Nested fields

kind = "note"

kind"note"Required

note supplies text; link supplies an HTTP(S) page URL; file refers to a readable document; entry refers to another readable record.

Always "note".

textstringRequired

Text content.

At least 1 character. At most 20000 characters.

kind = "link"

kind"link"Required

note supplies text; link supplies an HTTP(S) page URL; file refers to a readable document; entry refers to another readable record.

Always "link".

urlstringRequired

An HTTP(S) webpage URL. Its content is fetched asynchronously before use; successful attachment does not mean the fetch succeeded.

At least 4 characters. At most 2000 characters.

kind = "file"

kind"file"Required

note supplies text; link supplies an HTTP(S) page URL; file refers to a readable document; entry refers to another readable record.

Always "file".

file_idstringRequired

Existing file ID from ListDocuments or CompleteUpload. It must be readable by the target brief's audience.

At least 1 character. At most 80 characters.

labelstringOptional

A label for the row; the filename when omitted.

At least 1 character. At most 120 characters.

kind = "entry"

kind"entry"Required

note supplies text; link supplies an HTTP(S) page URL; file refers to a readable document; entry refers to another readable record.

Always "entry".

entry_idstringRequired

Top-level ID of another visible record. The target brief's audience must be able to read it.

At least 1 character. At most 80 characters.

metastringOptional

Optional display subtitle for a referenced record. It does not replace that record's content.

At most 160 characters.

Choose the record, then manage its briefing sources

Use a top-level record ID from List companies, List people or List meetings, paired with its matching target.type. An account ID cannot identify this target.

A new context item or a removal schedules regeneration when the brief is ready to run; the response confirms the context change, not a finished brief. A website first needs its content fetched. Generate brief can report scrape_pending or already_running instead of starting more work. Review the resulting brief and source-fetch state in Brigg: the public record model does not expose the brief body or a source-status listing.

Keep source_id together with target for removal. It identifies the attachment to this brief, not the original file or record. Adding the same URL, file or record again reuses its source_id; notes are distinct additions. Removing a source leaves the original file or record intact.

A file or referenced record must be readable by the target brief's audience, not merely by the caller. Adding a member-private file to a workspace-shared brief is refused. The target's existing private/workspace visibility stays in force.

Response

Returns 200 OK with a JSON body.

okbooleanRequired

The context source is attached. Generation and website fetching may still be pending.

source_idstringRequired

Identity of this context attachment. Keep it with target to call RemoveBriefContext; it is not the original file or record ID.

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 target is unavailable, or the source file/record is not readable by the target brief's audience.
429 rate_limited Wait for Retry-After before retrying. Reuse the original Idempotency-Key.
400 bad_url Use an HTTP or HTTPS page URL for kind=link.
409 conflict A concurrent context change could not be resolved. Re-read the brief in Brigg before making a new action.

Next steps

Download OpenAPI · Versioning & retirement

JSON schemas

Use the complete schemas for validation or client generation.

Full request JSON schema
{
  "type": "object",
  "properties": {
    "target": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "minLength": 1,
          "maxLength": 60,
          "description": "Exact type of the target record: core:Company, core:Person or core:Meeting."
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80,
          "description": "Top-level record ID from ListCompanies, ListPeople or ListMeetings matching target.type."
        }
      },
      "required": [
        "type",
        "id"
      ],
      "additionalProperties": false,
      "description": "The Company, Person or Meeting whose brief receives the context. Use its exact record type and top-level ID."
    },
    "item": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "note",
              "description": "note supplies text; link supplies an HTTP(S) page URL; file refers to a readable document; entry refers to another readable record."
            },
            "text": {
              "type": "string",
              "minLength": 1,
              "maxLength": 20000,
              "description": "Text content."
            }
          },
          "required": [
            "kind",
            "text"
          ],
          "additionalProperties": false,
          "description": "One source to attach, chosen by kind. Supply the fields for that variant only; this is an input source, not a returned record."
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "link",
              "description": "note supplies text; link supplies an HTTP(S) page URL; file refers to a readable document; entry refers to another readable record."
            },
            "url": {
              "type": "string",
              "minLength": 4,
              "maxLength": 2000,
              "description": "An HTTP(S) webpage URL. Its content is fetched asynchronously before use; successful attachment does not mean the fetch succeeded."
            }
          },
          "required": [
            "kind",
            "url"
          ],
          "additionalProperties": false,
          "description": "One source to attach, chosen by kind. Supply the fields for that variant only; this is an input source, not a returned record."
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "file",
              "description": "note supplies text; link supplies an HTTP(S) page URL; file refers to a readable document; entry refers to another readable record."
            },
            "file_id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "description": "Existing file ID from ListDocuments or CompleteUpload. It must be readable by the target brief's audience."
            },
            "label": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120,
              "description": "A label for the row; the filename when omitted."
            }
          },
          "required": [
            "kind",
            "file_id"
          ],
          "additionalProperties": false,
          "description": "One source to attach, chosen by kind. Supply the fields for that variant only; this is an input source, not a returned record."
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "entry",
              "description": "note supplies text; link supplies an HTTP(S) page URL; file refers to a readable document; entry refers to another readable record."
            },
            "entry_id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "description": "Top-level ID of another visible record. The target brief's audience must be able to read it."
            },
            "meta": {
              "type": "string",
              "maxLength": 160,
              "description": "Optional display subtitle for a referenced record. It does not replace that record's content."
            }
          },
          "required": [
            "kind",
            "entry_id"
          ],
          "additionalProperties": false,
          "description": "One source to attach, chosen by kind. Supply the fields for that variant only; this is an input source, not a returned record."
        }
      ],
      "description": "One source to attach, chosen by kind. Supply the fields for that variant only; this is an input source, not a returned record."
    }
  },
  "required": [
    "target",
    "item"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "target": {
        "type": "core:Company",
        "id": "e_company_northstar"
      },
      "item": {
        "kind": "note",
        "text": "The customer wants a two-week pilot before rollout."
      }
    }
  ]
}
Full response JSON schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "The context source is attached. Generation and website fetching may still be pending."
    },
    "source_id": {
      "type": "string",
      "description": "Identity of this context attachment. Keep it with target to call RemoveBriefContext; it is not the original file or record ID."
    }
  },
  "required": [
    "ok",
    "source_id"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "ok": true,
      "source_id": "bci_note_northstar"
    }
  ]
}

Search by operation name or what you want to build.

Use arrow keys to browse. Enter opens a result.