SalesOS

Collaboration

Team collaboration features

Get entity viewers

GET
/v1/collaboration/presence/{entityType}/{entityId}

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

entityTypeRequiredstring
entityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/collaboration/presence/<string>/<string>" \
  -H "Authorization: Bearer <token>"

Get viewer count for an entity

GET
/v1/collaboration/presence/{entityType}/{entityId}/count

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

entityTypeRequiredstring
entityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/collaboration/presence/<string>/<string>/count" \
  -H "Authorization: Bearer <token>"

Get presence summary for multiple entities

POST
/v1/collaboration/presence/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

Request Body

application/jsonRequired

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/collaboration/presence/summary" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

Get lock status

GET
/v1/collaboration/locks/{entityType}/{entityId}

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

entityTypeRequiredstring
entityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/collaboration/locks/<string>/<string>" \
  -H "Authorization: Bearer <token>"

Acquire a lock on an entity

POST
/v1/collaboration/locks/{entityType}/{entityId}

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

entityTypeRequiredstring
entityIdRequiredstring

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/collaboration/locks/<string>/<string>" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

{}

Release a lock on an entity

DELETE
/v1/collaboration/locks/{entityType}/{entityId}

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

entityTypeRequiredstring
entityIdRequiredstring
curl -X DELETE "https://api.salesos.org/v1/collaboration/locks/<string>/<string>" \
  -H "Authorization: Bearer <token>"

Refresh a lock (extend TTL)

POST
/v1/collaboration/locks/{entityType}/{entityId}/refresh

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

entityTypeRequiredstring
entityIdRequiredstring

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/collaboration/locks/<string>/<string>/refresh" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

{}

Check if user owns a lock

GET
/v1/collaboration/locks/{entityType}/{entityId}/owned

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

entityTypeRequiredstring
entityIdRequiredstring
curl -X GET "https://api.salesos.org/v1/collaboration/locks/<string>/<string>/owned" \
  -H "Authorization: Bearer <token>"

Get all locks held by the current user

GET
/v1/collaboration/locks/my-locks

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/collaboration/locks/my-locks" \
  -H "Authorization: Bearer <token>"

Force-release a lock. Only an admin or the current lock holder may do this.

DELETE
/v1/collaboration/locks/{entityType}/{entityId}/force

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

entityTypeRequiredstring
entityIdRequiredstring

Query Parameters

confirmRequiredstring
curl -X DELETE "https://api.salesos.org/v1/collaboration/locks/<string>/<string>/force?confirm=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"