Pulls the participant's avatar from a messaging-provider channel and stores it on the participant
Routes the call through the provider-specific `IParticipantAvatarSource` registered for the channel's integration id (Slack today; other providers as they're added), downloads the image into platform storage, and writes the resulting file id into `Participant.AvatarFileId`. Returns the updated participant. Surfaces 400 when the named channel isn't on the participant, when the provider has no avatar source registered, when the operator hasn't connected OAuth for that workspace, or when the provider returns no image for the address (channels/groups, default-avatar users).
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The participant identifier.
uuidThe tenant identifier
Which channel (config id + address) to pull from.
uuid1 <= lengthResponse Body
curl -X POST "https://api.fruxon.com/v1/tenants/string/participants/497f6eca-6276-4993-bfeb-53cbbbba6f08/avatar:syncFromChannel" \ -H "Content-Type: application/json" \ -d '{ "integrationConfigId": "928c9032-93b2-49a3-82db-be1a31402d0e", "address": "string" }'{
"id": "00000000-0000-0000-0000-000000000000",
"kind": "PERSON",
"displayName": "string",
"email": "string",
"relatedAgentId": "string",
"channels": [
{
"integrationConfigId": "00000000-0000-0000-0000-000000000000",
"address": "string",
"priority": 0,
"label": "string",
"disabled": false
}
],
"agentIds": [
"string"
],
"disabledAt": 0,
"health": {
"reachable": false,
"channels": [
{
"address": "string",
"reason": null,
"keyStatus": "UNSPECIFIED",
"keyPrefix": "string",
"lastMessageAt": null
}
],
"reason": "INVALID_FORMAT"
},
"channelActivations": [
{
"agentId": "string",
"bindingId": "00000000-0000-0000-0000-000000000000",
"integrationConfigId": "00000000-0000-0000-0000-000000000000",
"provider": "string",
"address": "string",
"webhookUrl": "string",
"webhookUrlTemplate": "string",
"webhookKeyPrefix": "string",
"scope": "PER_BINDING"
}
],
"avatarFileId": "string",
"avatarSource": "UPLOADED",
"avatarSourceConfigId": "00000000-0000-0000-0000-000000000000",
"avatarSourceAddress": "string",
"avatarSyncedAt": 0,
"avatarAutoSync": {
"synced": false,
"provider": "string",
"address": "string"
},
"createdAt": 0,
"modifiedAt": 0
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}Lists participants in the tenant
Returns every participant in the tenant, each with its inline channels and current agent bindings. Pass `agentId` to narrow the result to the participants bound to a single agent — the Agent Network UI uses this to render an agent's contact list. The result is unpaged.
Removes the binding between the participant and an agent
Unbinds the participant from an agent. The call is idempotent: removing a binding that does not exist still succeeds with 204. Neither the participant nor the agent is deleted.