SalesOS

Cases

Customer service cases and comments

List

GET
/v1/cases

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Query Parameters

statusstring
prioritystring
accountIdstring
contactIdstring
ownerIdstring
searchstring
pagestring
limitstring
sortBystring
sortOrderstring
curl -X GET "https://api.salesos.org/v1/cases?status=%3Cstring%3E&priority=%3Cstring%3E&accountId=%3Cstring%3E&contactId=%3Cstring%3E&ownerId=%3Cstring%3E&search=%3Cstring%3E&page=%3Cstring%3E&limit=%3Cstring%3E&sortBy=%3Cstring%3E&sortOrder=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

CaseList

{
  "data": [
    {
      "id": "string",
      "organizationId": "string",
      "caseNumber": 0,
      "subject": "string",
      "description": "string",
      "status": "string",
      "priority": "string",
      "type": "string",
      "origin": "string",
      "accountId": "string",
      "contactId": "string",
      "opportunityId": "string",
      "ownerId": "string",
      "assignedToId": "string",
      "slaDueAt": "2019-08-24T14:15:22Z",
      "firstResponseAt": "2019-08-24T14:15:22Z",
      "resolvedAt": "2019-08-24T14:15:22Z",
      "closedAt": "2019-08-24T14:15:22Z",
      "tags": [
        "string"
      ],
      "aiSummary": null,
      "metadata": null,
      "createdAt": "2019-08-24T14:15:22Z",
      "updatedAt": "2019-08-24T14:15:22Z"
    }
  ],
  "page": 1,
  "limit": 50,
  "total": 0,
  "totalPages": 0,
  "hasMore": true
}

Create

POST
/v1/cases

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
subjectRequiredstring
Maximum length: 300
descriptionstring
Maximum length: 20000
statusstring
Value in: "NEW" | "OPEN" | "PENDING_CUSTOMER" | "ESCALATED" | "RESOLVED" | "CLOSED"
prioritystring
Value in: "LOW" | "MEDIUM" | "HIGH" | "URGENT"
typestring
Value in: "QUESTION" | "INCIDENT" | "PROBLEM" | "FEATURE_REQUEST" | "BILLING" | "OTHER"
originstring
Value in: "EMAIL" | "PHONE" | "WEB" | "CHAT" | "PORTAL" | "INTERNAL"
accountIdstring
contactIdstring
opportunityIdstring
assignedToIdstring
slaDueAtstring
tagsarray<string>

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/cases" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "string",
    "description": "string",
    "status": "NEW",
    "priority": "LOW",
    "type": "QUESTION",
    "origin": "EMAIL",
    "accountId": "string",
    "contactId": "string",
    "opportunityId": "string",
    "assignedToId": "string",
    "slaDueAt": "string",
    "tags": [
      "string"
    ]
  }'

Case

{
  "id": "string",
  "organizationId": "string",
  "caseNumber": 0,
  "subject": "string",
  "description": "string",
  "status": "string",
  "priority": "string",
  "type": "string",
  "origin": "string",
  "accountId": "string",
  "contactId": "string",
  "opportunityId": "string",
  "ownerId": "string",
  "assignedToId": "string",
  "slaDueAt": "2019-08-24T14:15:22Z",
  "firstResponseAt": "2019-08-24T14:15:22Z",
  "resolvedAt": "2019-08-24T14:15:22Z",
  "closedAt": "2019-08-24T14:15:22Z",
  "tags": [
    "string"
  ],
  "aiSummary": null,
  "metadata": null,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}

Stats

GET
/v1/cases/stats

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

curl -X GET "https://api.salesos.org/v1/cases/stats" \
  -H "Authorization: Bearer <token>"

Assignees

GET
/v1/cases/assignees

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

curl -X GET "https://api.salesos.org/v1/cases/assignees" \
  -H "Authorization: Bearer <token>"

Get by id

GET
/v1/cases/{id}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X GET "https://api.salesos.org/v1/cases/<string>" \
  -H "Authorization: Bearer <token>"

Case

{
  "id": "string",
  "organizationId": "string",
  "caseNumber": 0,
  "subject": "string",
  "description": "string",
  "status": "string",
  "priority": "string",
  "type": "string",
  "origin": "string",
  "accountId": "string",
  "contactId": "string",
  "opportunityId": "string",
  "ownerId": "string",
  "assignedToId": "string",
  "slaDueAt": "2019-08-24T14:15:22Z",
  "firstResponseAt": "2019-08-24T14:15:22Z",
  "resolvedAt": "2019-08-24T14:15:22Z",
  "closedAt": "2019-08-24T14:15:22Z",
  "tags": [
    "string"
  ],
  "aiSummary": null,
  "metadata": null,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}

Update

PATCH
/v1/cases/{id}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X PATCH "https://api.salesos.org/v1/cases/<string>" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

Case

{
  "id": "string",
  "organizationId": "string",
  "caseNumber": 0,
  "subject": "string",
  "description": "string",
  "status": "string",
  "priority": "string",
  "type": "string",
  "origin": "string",
  "accountId": "string",
  "contactId": "string",
  "opportunityId": "string",
  "ownerId": "string",
  "assignedToId": "string",
  "slaDueAt": "2019-08-24T14:15:22Z",
  "firstResponseAt": "2019-08-24T14:15:22Z",
  "resolvedAt": "2019-08-24T14:15:22Z",
  "closedAt": "2019-08-24T14:15:22Z",
  "tags": [
    "string"
  ],
  "aiSummary": null,
  "metadata": null,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}

Remove

DELETE
/v1/cases/{id}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X DELETE "https://api.salesos.org/v1/cases/<string>" \
  -H "Authorization: Bearer <token>"

Add comment

POST
/v1/cases/{id}/comments

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
bodyRequiredstring
Maximum length: 20000
isInternalboolean

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/cases/<string>/comments" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "body": "string",
    "isInternal": true
  }'

{}

Assign

POST
/v1/cases/{id}/assign

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
assignedToIdstring

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/cases/<string>/assign" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "assignedToId": "string"
  }'

{}

Change status

POST
/v1/cases/{id}/status

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
statusRequiredstring
Value in: "NEW" | "OPEN" | "PENDING_CUSTOMER" | "ESCALATED" | "RESOLVED" | "CLOSED"

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/cases/<string>/status" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "NEW"
  }'

{}

Ai summary

POST
/v1/cases/{id}/ai-summary

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/cases/<string>/ai-summary" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>"

{}