KlockworkKlockworkAPI
Solo

Integrations

Slack and Teams binding fields for a solo talent.

Base URL https://api.klockwork.org. Send the agency key and X-Klockwork-Talent (or talentId). The call acts as that active talent. /api/public/solo/public returns 404.

Connecting Slack or Teams still starts in the signed-in app. These calls read and update a connection that already exists.

List Slack connections

GET /api/public/solo/integrations/slack

Response 200: SlackConnections

FieldTypeRequired
installsarray of objectyes
bindingsarray of objectyes

installs items:

FieldTypeRequired
idstring (uuid)yes
clerkUserIdstring, min 1yes
teamIdstring, min 1yes
teamNamestring or nullyes
botUserIdstring or nullyes
slackUserIdstring or nullyes
connectedAtstring or nullyes
createdAtstring or nullyes
updatedAtstring or nullyes

bindings items:

FieldTypeRequired
idstring (uuid)yes
installIdstring (uuid)yes
clerkUserIdstring, min 1yes
channelIdstring, min 1yes
channelNamestring or nullyes
defaultClientIdstring (uuid) or nullyes
messageCheckInstring, min 1, max 200yes
messageCheckOutstring, min 1, max 200yes
messageBreakstring, min 1, max 200yes
enabledbooleanyes
createdAtstring or nullyes
updatedAtstring or nullyes
teamIdstring or nullno
teamNamestring or nullno
defaultClientNamestring or nullno

List Slack channels

GET /api/public/solo/integrations/slack/channels

Query installId selects the Slack install.

Response 200: { channels: Channel[] }

FieldTypeRequired
idstring, min 1yes
namestring, min 1yes

Create a Slack binding

POST /api/public/solo/integrations/slack

Request body:

FieldTypeRequired
installIdstring (uuid)yes
channelIdstring, min 1yes
channelNamestring, min 1, max 200 or nullyes
defaultClientIdstring (uuid)yes
messageCheckInstring, min 1, max 200yes
messageCheckOutstring, min 1, max 200yes
messageBreakstring, min 1, max 200yes
enabledbooleanno

Response 200: { binding: Binding }

FieldTypeRequired
idstring (uuid)yes
installIdstring (uuid)yes
clerkUserIdstring, min 1yes
channelIdstring, min 1yes
channelNamestring or nullyes
defaultClientIdstring (uuid) or nullyes
messageCheckInstring, min 1, max 200yes
messageCheckOutstring, min 1, max 200yes
messageBreakstring, min 1, max 200yes
enabledbooleanyes
createdAtstring or nullyes
updatedAtstring or nullyes
teamIdstring or nullno
teamNamestring or nullno
defaultClientNamestring or nullno

Update a Slack binding

PATCH /api/public/solo/integrations/slack/bindings/{id}

Request body:

FieldTypeRequired
channelIdstring, min 1no
channelNamestring, min 1, max 200 or nullno
defaultClientIdstring (uuid) or nullno
messageCheckInstring, min 1, max 200no
messageCheckOutstring, min 1, max 200no
messageBreakstring, min 1, max 200no
enabledbooleanno

Response 200: { binding: Binding }

FieldTypeRequired
idstring (uuid)yes
installIdstring (uuid)yes
clerkUserIdstring, min 1yes
channelIdstring, min 1yes
channelNamestring or nullyes
defaultClientIdstring (uuid) or nullyes
messageCheckInstring, min 1, max 200yes
messageCheckOutstring, min 1, max 200yes
messageBreakstring, min 1, max 200yes
enabledbooleanyes
createdAtstring or nullyes
updatedAtstring or nullyes
teamIdstring or nullno
teamNamestring or nullno
defaultClientNamestring or nullno

Delete a Slack binding

DELETE /api/public/solo/integrations/slack/bindings/{id}

Response 200: { ok: true }

Disconnect a Slack install

DELETE /api/public/solo/integrations/slack/installs/{id}

Response 200: { ok: true }

Start a Slack test

POST /api/public/solo/integrations/slack/bindings/{id}/test

No request body.

Response 200: { test: Test }

FieldTypeRequired
idstring (uuid)yes
bindingIdstring (uuid)yes
channelIdstring, min 1yes
status"pending" or "received" or "failed"yes
errorstring or nullyes
createdAtstring or nullyes
receivedAtstring or nullyes

Get a Slack test

GET /api/public/solo/integrations/slack/bindings/{id}/test/{testId}

Response 200: { test: Test }

FieldTypeRequired
idstring (uuid)yes
bindingIdstring (uuid)yes
channelIdstring, min 1yes
status"pending" or "received" or "failed"yes
errorstring or nullyes
createdAtstring or nullyes
receivedAtstring or nullyes

List Teams connections

GET /api/public/solo/integrations/teams

Response 200: TeamsConnections

FieldTypeRequired
installsarray of objectyes
bindingsarray of objectyes

installs items:

FieldTypeRequired
idstring (uuid)yes
clerkUserIdstring, min 1yes
tenantIdstring, min 1yes
accountNamestring or nullyes
microsoftUserIdstring or nullyes
connectedAtstring or nullyes
createdAtstring or nullyes
updatedAtstring or nullyes

bindings items:

FieldTypeRequired
idstring (uuid)yes
installIdstring (uuid)yes
clerkUserIdstring, min 1yes
teamIdstring, min 1yes
teamNamestring or nullyes
channelIdstring, min 1yes
channelNamestring or nullyes
defaultClientIdstring (uuid) or nullyes
messageCheckInstring, min 1, max 200yes
messageCheckOutstring, min 1, max 200yes
messageBreakstring, min 1, max 200yes
enabledbooleanyes
createdAtstring or nullyes
updatedAtstring or nullyes
accountNamestring or nullno
defaultClientNamestring or nullno

List Teams channels

GET /api/public/solo/integrations/teams/channels

Query installId selects the Teams install.

Response 200: { channels: Channel[] }

FieldTypeRequired
idstring, min 1yes
namestring, min 1yes
teamIdstring, min 1yes
teamNamestring, min 1yes

Create a Teams binding

POST /api/public/solo/integrations/teams

Request body:

FieldTypeRequired
installIdstring (uuid)yes
teamIdstring, min 1yes
teamNamestring, min 1, max 200 or nullyes
channelIdstring, min 1yes
channelNamestring, min 1, max 200 or nullyes
defaultClientIdstring (uuid)yes
messageCheckInstring, min 1, max 200yes
messageCheckOutstring, min 1, max 200yes
messageBreakstring, min 1, max 200yes
enabledbooleanno

Response 200: { binding: Binding }

FieldTypeRequired
idstring (uuid)yes
installIdstring (uuid)yes
clerkUserIdstring, min 1yes
teamIdstring, min 1yes
teamNamestring or nullyes
channelIdstring, min 1yes
channelNamestring or nullyes
defaultClientIdstring (uuid) or nullyes
messageCheckInstring, min 1, max 200yes
messageCheckOutstring, min 1, max 200yes
messageBreakstring, min 1, max 200yes
enabledbooleanyes
createdAtstring or nullyes
updatedAtstring or nullyes
accountNamestring or nullno
defaultClientNamestring or nullno

Update a Teams binding

PATCH /api/public/solo/integrations/teams/bindings/{id}

Request body:

FieldTypeRequired
teamIdstring, min 1no
teamNamestring, min 1, max 200 or nullno
channelIdstring, min 1no
channelNamestring, min 1, max 200 or nullno
defaultClientIdstring (uuid) or nullno
messageCheckInstring, min 1, max 200no
messageCheckOutstring, min 1, max 200no
messageBreakstring, min 1, max 200no
enabledbooleanno

Response 200: { binding: Binding }

FieldTypeRequired
idstring (uuid)yes
installIdstring (uuid)yes
clerkUserIdstring, min 1yes
teamIdstring, min 1yes
teamNamestring or nullyes
channelIdstring, min 1yes
channelNamestring or nullyes
defaultClientIdstring (uuid) or nullyes
messageCheckInstring, min 1, max 200yes
messageCheckOutstring, min 1, max 200yes
messageBreakstring, min 1, max 200yes
enabledbooleanyes
createdAtstring or nullyes
updatedAtstring or nullyes
accountNamestring or nullno
defaultClientNamestring or nullno

Delete a Teams binding

DELETE /api/public/solo/integrations/teams/bindings/{id}

Response 200: { ok: true }

Disconnect a Teams install

DELETE /api/public/solo/integrations/teams/installs/{id}

Response 200: { ok: true }

On this page