Pular para o conteúdo

Tags

As tags de contato são rótulos coloridos e reutilizáveis que descrevem uma pessoa em todas as conversas dela. Esta seção cobre os endpoints para gerenciar o catálogo de tags da organização e para aplicar e remover tags de um contato externo. Para o uso no produto, em Tags do contato e Gerenciar tags, veja Tags de Contato.

Não confunda este recurso com tags que descrevem uma conversa específica nem com tags de campanhas. A ferramenta nativa manage_tags usa tags de contato; manage_conversation_tags aplica o mesmo vocabulário do catálogo à conversa atual, mas grava outra associação. Esta API pública expõe somente o catálogo e as associações de contatos externos.

Todos os endpoints exigem o header Authorization: Bearer pk_.... Quando houver corpo JSON, inclua também Content-Type: application/json.

Base URL: https://api.squados.io/v1

Consulte Autenticação para obter sua chave, e Erros para a referência de códigos.

Toda tag é representada por:

{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "lead quente",
"color": "orange"
}
CampoTipoDescrição
iduuidIdentificador da tag.
namestringNome da tag, único sem diferenciar maiúsculas e minúsculas na organização.
colorstringUma de: purple, blue, green, orange, red, pink, teal, gray.

Lista o catálogo de tags da organização, ordenado por nome.

Terminal window
curl -X GET "https://api.squados.io/v1/tags" \
-H "Authorization: Bearer pk_sua_chave_aqui"

Resposta — 200 OK

{
"tags": [
{ "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "aguardando pagamento", "color": "blue" },
{ "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "name": "cliente", "color": "red" },
{ "id": "8a1b2c3d-4e5f-6789-abcd-ef0123456789", "name": "lead quente", "color": "orange" }
]
}

Renomeia e/ou recolora uma tag do catálogo. A mudança vale para todos os contatos que têm a tag.

Parâmetros de caminho

NomeTipoDescrição
tagIduuidID da tag.

Corpo da requisição

CampoTipoDescrição
namestringNovo nome da tag. Não pode ser vazio nem colidir com outra tag.
colorstringNova cor: purple, blue, green, orange, red, pink, teal ou gray.

Envie name ou color por chamada. O runtime atual também aceita os dois campos e executa a renomeação antes da troca de cor, mas as duas mudanças não formam uma operação atômica. Se a segunda falhar, a primeira pode já ter sido aplicada. Um objeto vazio ou apenas com campos desconhecidos também recebe 200 sem alterar a tag; não use esse comportamento como validação.

Terminal window
curl -X PATCH "https://api.squados.io/v1/tags/TAG_ID" \
-H "Authorization: Bearer pk_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{"name": "lead qualificado"}'

Resposta — 200 OK

{
"success": true,
"id": "8a1b2c3d-4e5f-6789-abcd-ef0123456789"
}

Erros relevantes: 400 invalid_request se o ID for inválido, o nome for vazio ou a cor não pertencer à paleta; 404 not_found se a tag não existir na sua organização; 409 conflict se já existir outra tag com o nome informado.


Exclui a tag do catálogo e a remove de todos os contatos que a tinham. Não pode ser desfeito.

Parâmetros de caminho

NomeTipoDescrição
tagIduuidID da tag.
Terminal window
curl -X DELETE "https://api.squados.io/v1/tags/TAG_ID" \
-H "Authorization: Bearer pk_sua_chave_aqui"

Resposta — 200 OK

{ "success": true }

Erros relevantes: 400 invalid_request se o tagId não for um UUID válido; 404 not_found se a tag não existir na sua organização; 500 internal_error se a exclusão falhar.


Lista as tags aplicadas a um contato externo. A resposta não garante ordenação; ordene por name no cliente quando a apresentação exigir ordem estável.

Parâmetros de caminho

NomeTipoDescrição
contactIduuidID do contato externo.
Terminal window
curl -X GET "https://api.squados.io/v1/contacts/CONTACT_ID/tags" \
-H "Authorization: Bearer pk_sua_chave_aqui"

Resposta — 200 OK

{
"tags": [
{ "id": "8a1b2c3d-4e5f-6789-abcd-ef0123456789", "name": "lead quente", "color": "orange" },
{ "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "name": "cliente", "color": "red" }
]
}

Erros relevantes: 400 invalid_request se o contactId for inválido; 404 not_found se o contato não existir ou não pertencer à sua organização; 500 internal_error se a leitura das associações falhar.


Aplica uma tag ao contato pelo nome. Se a tag ainda não existir no catálogo da organização, ela é criada automaticamente com uma cor determinística derivada do nome. A procura não diferencia maiúsculas e minúsculas: reaplicar o mesmo nome, inclusive com outra capitalização, reutiliza a tag e a cor já armazenadas. A associação também é idempotente e não cria duplicata.

Parâmetros de caminho

NomeTipoDescrição
contactIduuidID do contato externo.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringSimNome da tag a aplicar (criada se não existir).
Terminal window
curl -X POST "https://api.squados.io/v1/contacts/CONTACT_ID/tags" \
-H "Authorization: Bearer pk_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{"name": "lead quente"}'

Resposta — 200 OK

{
"tag": { "id": "8a1b2c3d-4e5f-6789-abcd-ef0123456789", "name": "lead quente", "color": "orange" }
}

Erros relevantes: 400 invalid_request para JSON malformado, name ausente/não textual/vazio ou contactId inválido; 404 not_found se o contato não existir ou não pertencer à sua organização; 500 internal_error se a aplicação falhar.


Remove a tag do contato. A tag permanece no catálogo da organização e em outros contatos. A operação é idempotente: IDs válidos recebem 200 mesmo quando a associação já não existe ou o tagId não pertence a uma tag aplicada ao contato.

Parâmetros de caminho

NomeTipoDescrição
contactIduuidID do contato externo.
tagIduuidID da tag a remover.
Terminal window
curl -X DELETE "https://api.squados.io/v1/contacts/CONTACT_ID/tags/TAG_ID" \
-H "Authorization: Bearer pk_sua_chave_aqui"

Resposta — 200 OK

{ "success": true }

Erros relevantes: 400 invalid_request se algum ID for inválido; 404 not_found se o contato não existir ou não pertencer à sua organização; 500 internal_error se a remoção falhar.

O Swagger atual não enumera os 500 implementados por cinco destas operações. Trate 5xx como transitório, aplique backoff com jitter e reconcilie o resultado por GET /tags ou GET /contacts/{contactId}/tags antes de repetir uma mutação.