Para a atualização de atributos customizados em conversas via API no Cloud Chat, basta enviar uma requisição PUT para:
https://cloudchat.cloudhumans.com/api/v1/accounts/ACCOUNT_ID/conversations/CONVERSATION_ID/custom_attributes
Certifique-se de enviar a chave de acesso (API_TOKEN) nos headers e os campos solicitados conforme descrito abaixo.
-
API_TOKEN: Token de acesso obtido nas configurações do perfil.
-
(https://cloudchat.cloudhumans.com/app/accounts/ACCOUNT_ID/profile/settings)

Requisição com campos de exemplo:
curl --request PUT \
--url https://cloudchat.cloudhumans.com/api/v1/accounts/ACCOUNT_ID/conversations/CONVERSATION_ID/custom_attributes \
--header 'api_access_token: API_TOKEN' \
--header 'content-type: application/json' \
--data '{
"custom_attributes": {
"to_be_updated": "new_value",
"to_be_removed": null
}
}'
**
Corpo da Requisição**
A requisição deve conter um único campo, custom_attributes, que deve ser um objeto contendo os atributos customizados a serem atualizados.

Observação:
O conversation_id da conversa a ser atualizada não deve ser enviado no corpo da requisição, pois ele é passado como um parâmetro na URL.
Exemplo de Requisição:
PUT /conversations/123/custom_attributes
{
"custom_attributes": {
"to_be_updated": "new_value",
"to_be_removed": null
}
}
**
Tipos de atributos**
Os atributos customizados das conversas possuem um tipo definido de valor, definidos na sua configuração, que devem ser respeitados ao utilizar o endpoint para atualizar os valores:
-
Texto: Deve receber valores tipo
Stringobrigatóriamente. -
Número: Deve conter apenas números. Não pode conter caracteres alfabéticos ou especiais.
-
Link: Deve ser um URL válido (
httpouhttps). O link deve obrigatoriamente terminar com um domínio válido (ex:.com,.net,.org). -
Data: Deve estar no formato ISO8601 (
YYYY-MM-DDTHH:MM:SS.sssZ). Exemplo válido:"2025-01-01T12:00:00.000Z". -
Lista: Deve receber um valor do tipo
String, e este valor deve obrigatoriamente estar presente na lista de opções definidas na configuração do atributo. -
Checkbox: Deve ser valores
"true"/"false"(string), ou valorestrue/false(Booleano).
Observação:
Para remover um valor atribuído a um atributo customizado, basta enviar null ou uma string vazia (""). O sistema processará a requisição e removerá o atributo do objeto de custom_attributes, garantindo que ele não esteja mais presente na conversa.
**
Tratamento de Erros**
Caso algum valor enviado no campo custom_attributes não respeite as regras definidas, a requisição não será processada e retornará um erro específico.
-
Se a conversa não for encontrada, o sistema retorna um erro
"Conversation not found"com código404. -
Se o corpo da requisição estiver incorreto, um erro
"Invalid attributes"com código422será retornado. -
Caso um atributo não exista na configuração, será retornado um erro informando que o atributo não foi encontrado.
-
Se um valor não respeitar o tipo esperado, será retornada uma mensagem informando o problema, como:
"number_attr must contain only numeric digits"ou"date_attr must be in ISO8601 format (YYYY-MM-DDTHH:MM:SS.sssZ)".