API Intelbras Conversas

Modificado em Qui, 30 Out na (o) 6:55 AM

API Contatos do Intelbras Conversas


API de Contatos do Intelbras Conversas permite gerenciar dados de clientes.


Base URL: https://chatapi.intelbrasconversas.com.br
Autenticação: O cabeçalho Authorization: Bearer {{token}} é obrigatório em todas as requisições.




1. Listar Contatos (GET)

Lista todos os contatos paginados.

MétodoEndpoint
GET/v1/contacts

Exemplo:

curl --location 'https://chatapi.intelbrasconversas.com.br/v1/contacts' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{token}}'

2. Criar Novo Contato (POST)

Cria um novo registro de contato.

MétodoEndpointStatus de Sucesso
POST/v1/contacts201 Created

Exemplo:

curl --location --request POST 'https://chatapi.intelbrasconversas.com.br/v1/contacts' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "name": "Megane",
    "email": "Destinee.Collins@yahoo.com",
    "number": "55489123456789",
    "isGroup": false,
    "leadStatusId": null,
    "customFields": {},
    "tags": []
}'

3. Procurar Contato por ID (GET)

Busca um contato específico utilizando o ID numérico.

MétodoEndpoint
GET/v1/contacts/{id}

Exemplo:

curl --location 'https://chatapi.intelbrasconversas.com.br/v1/contacts/14' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{token}}'

4. Procurar Contato por Número do WhatsApp (GET)

Busca um contato específico utilizando o número completo do WhatsApp (incluindo código do país e DDD).

MétodoEndpoint
GET/v1/contacts/number/{numero_whatsapp}

Exemplo (Assumindo que não há corpo na requisição GET):

curl --location 'https://chatapi.intelbrasconversas.com.br/v1/contacts/number/55489123456789' \
--header 'Authorization: Bearer {{token}}'

5. Alterar Campo Personalizável (PATCH)

Atualiza campos personalizados de um contato existente. Use o ID do contato.

MétodoEndpointStatus de Sucesso
PATCH/v1/contacts/{id}200 OK

Exemplo (Formato JSON simplificado para customFields):

curl --location --request PATCH 'https://chatapi.intelbrasconversas.com.br/v1/contacts/99368' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "customFields": {
        "CNPJ": "00.000.000/0001-00",
        "Nome da Rua": "Reese Junction"
    }
}'

6. Alterar Tag (PATCH)

Atualiza ou substitui a lista de tags de um contato existente.

MétodoEndpointStatus de Sucesso
PATCH/v1/contacts/{id}200 OK

Exemplo:

curl --location --request PATCH 'https://chatapi.intelbrasconversas.com.br/v1/contacts/99368' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "tags": ["Aniversariantes Abril", "


Fonte base da documentação no produto: https://chatapi.intelbrasconversas.com.br/v1/contacts/docs








API Outros Controles do Intelbras Conversas


 


Envio Mensagem via WhatsApp

CampoValor ExemploDescrição
MétodoPOSTEnvia dados para o servidor.
Endpoint/v1/api/external/{{ID_CANAL_WHATSAPP}}O ID do canal de WhatsApp (ex: 123) deve ser fornecido na URL.
Status de Sucesso200 OK

Corpo da Requisição (Body)

CampoTipoObrigatórioDescrição
numberStringSimNúmero do WhatsApp do cliente (Ex: 5548912345678).
bodyStringSimTexto a ser enviado para o cliente.
externalKeyStringSimChave externa (qualquer valor), usada apenas para logs e rastreamento.
mediaUrlStringNãoLink de mídia. O sistema fará o download e enviará o arquivo.
userIdNumberNãoID do atendente para quem o ticket será forçado/atribuído.
queueIdStringNãoID do departamento/fila para onde o ticket será movido.
onlyNoteBooleanNãoSe true, envia somente a nota interna, sem mensagem para o cliente.
forceTicketToUserBooleanNãoSe true, força o ticket para a aba de ativos do userId especificado.
forceTicketToDepartmentBooleanNãoSe true, move o ticket para a aba de pendentes e atribui ao queueId especificado.
forceTicketToClosedBooleanNãoSe true, força o ticket para a aba de fechados.
closingReasonIdNumberNãoID do motivo de fechamento (usado em conjunto com forceTicketToClosed).
noteObjectNãoObjeto para disparar uma nota interna (visível apenas para o atendente).
note.bodyStringNãoTexto da nota interna.
note.mediaUrlStringNãoLink de mídia para a nota interna.


Exemplo:

curl --location 'https://chatapi.intelbrasconversas.com.br/v1/api/external/{{ID_CANAL_WHATSAPP}}' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "body": "Olá. Isso é um teste da Intelbras. Pode desconsiderar. Obrigado.",
  "number": "5548912345678",
  "externalKey": "123456",
  "mediaUrl": "https://intelbras.com/imagem.png",
  "note": {
    "body": "Nome: Intelbras Conversas\nE-mail: email_teste@intelbras.com.br\nSegmento: Telecomunicações\nCargo: Eng.\nSolicitacao: Preciso de sistema em nuvem para administrar os canais do WhatsApp dos vendedores\nProduto: Intelbras Conversas"
  }
}'




Listar Usuários (GET)

Este endpoint retorna os dados de um usuário específico do sistema (geralmente um atendente) utilizando seu ID.

MétodoEndpointStatus de Sucesso
GET/v1/api/external/users/{id}200 OK

Parâmetros

NomeTipoLocalObrigatórioDescrição
idstringPathSimID numérico do usuário que se deseja consultar.

Exemplo de Uso

Para consultar os dados de um usuário com o ID 183:

curl --location 'https://chatapi.intelbrasconversas.com.br/v1/api/external/users/183' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{token}}'

Resposta Esperada (200 OK)

A resposta será um objeto JSON contendo os detalhes do usuário solicitado.

CódigoDescrição
200Resposta bem-sucedida.


API TAGS


Listar Tags (GET)


Retorna a lista de todas as tags disponíveis na sua conta.

MétodoEndpointStatus de Sucesso
GET/v1/api/external/{{apiId}}/tags200 OK

Parâmetros

O único parâmetro é o apiId (ID da API) na URL.

Exemplo de Uso

Para listar todas as tags da API de ID 50:

curl --location 'https://chatapi.intelbrasconversas.com.br/v1/api/external/50/tags' \
--header 'Authorization: Bearer {{token}}'

Estrutura da Resposta (200 OK)

Retorna um array de objetos, onde cada objeto representa uma tag.

JSON
[
  {
    "tag": "Nome da Tag",
    "color": "#FF0000",
    "userId": 0
  }
]

Criar Múltiplas Tags (POST)

Cria múltiplas tags em um único request. Se houver erro de validação em qualquer tag, nenhuma tag será criada (operação atômica).

MétodoEndpointStatus de Sucesso
POST/v1/api/external/{{apiId}}/tags200 OK

Parâmetros

O único parâmetro é o apiId (ID da API) na URL.

Corpo da Requisição (Body)

Deve ser um array de objetos no formato abaixo:

CampoTipoObrigatórioDescrição
tagstringSimNome da tag (Ex: "Clientes VIP").
colorstringNãoCódigo hexadecimal da cor (Ex: "#FF0000").
userIdNumberNãoID do usuário que criou a tag (pode ser null).

Exemplo de Uso

Criação de três novas tags:

curl --location --request POST 'https://chatapi.intelbrasconversas.com.br/v1/api/external/50/tags' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data-raw '[
  {
    "tag": "Tag de Suporte",
    "color": "#FF0000",
    "userId": null
  },
  {
    "tag": "Tag de Vendas",
    "color": "#00FF00",
    "userId": null
  }
]'

Remover Tag (DELETE)

Remove uma tag específica utilizando seu ID.

MétodoEndpointStatus de Sucesso
DELETE/v1/api/external/{{apiId}}/tags/{tagId}200 OK

Parâmetros

Os parâmetros são fornecidos na URL:

NomeTipoLocalObrigatórioDescrição
apiIdstringPathSimID da API.
tagIdstringPathSimID numérico da tag a ser removida.

Exemplo de Uso

Para remover a tag com o ID 99:

curl --location --request DELETE 'https://chatapi.intelbrasconversas.com.br/v1/api/external/50/tags/99' \
--header 'Authorization: Bearer {{token}}'

Resposta Esperada (200 OK)

JSON
{
  "message": "Tag removida com sucesso."
}




API Oportunidades


Listar Oportunidades (GET)

Este endpoint permite listar e filtrar oportunidades de negócio registradas no sistema.

MétodoEndpointStatus de Sucesso
GET/v1/api/external/{{apiId}}/opportunities200 OK

Parâmetros

Os parâmetros de filtro são enviados via Query String (após o ? na URL), exceto o apiId que é parte do Path.

NomeTipoLocalObrigatórioDescriçãoValores Possíveis / Formato
apiIdstringPathSimID da API (integração).Ex: 50
searchParamstringQueryNãoTermo geral para busca (nome da oportunidade, etc.).
pageNumberstringQueryNãoNúmero da página para paginação de resultados.Ex: 1, 2
statusstringQueryNãoFiltra oportunidades pelo status atual.open, won, lost
startDatestring ($date)QueryNãoData inicial para filtro (formato ISO 8601).Ex: 2024-01-01
endDatestring ($date)QueryNãoData final para filtro (formato ISO 8601).Ex: 2024-12-31
contactIdnumberQueryNãoID do contato associado à oportunidade.
pipelineStepIdnumberQueryNãoID da etapa do pipeline em que a oportunidade se encontra.
responsibleIdstringQueryNãoID do responsável pela oportunidade.

Exemplo de Uso

a) Listar todas as oportunidades abertas na primeira página:
curl --location 'https://chatapi.intelbrasconversas.com.br/v1/api/external/50/opportunities?pageNumber=1&status=open' \
--header 'Authorization: Bearer {{token}}'

b) Buscar oportunidades de um contato específico e em um período de tempo:

curl --location 'https://chatapi.intelbrasconversas.com.br/v1/api/external/50/opportunities?contactId=12345&startDate=2024-06-01&endDate=2024-06-30' \
--header 'Authorization: Bearer {{token}}'

Estrutura da Resposta (200 OK)

CampoTipoDescrição
successbooleanIndica se a requisição foi bem-sucedida.
dataarrayLista de objetos de oportunidades encontradas.
countnumberNúmero total de oportunidades retornadas nesta página.
hasMorebooleanIndica se existem mais páginas de resultados disponíveis.
messagestringMensagem de status da requisição.
JSON
{
  "success": true,
  "data": [
    {
      "id": 101,
      "name": "Nova Venda de Sistema X",
      "status": "open",
      "contactId": 12345,
      "responsibleId": 183,
      "pipelineStepId": 3
      /* ... Outros campos da oportunidade ... */
    }
  ],
  "count": 1,
  "hasMore": false,
  "message": "Sucesso"
}


Criar Oportunidade (POST)

Este endpoint é usado para criar uma nova oportunidade de negócio, associando-a a um contato e a um estágio de pipeline (funil de vendas).

MétodoEndpointStatus de Sucesso
POST/v1/api/external/{{apiId}}/opportunities201 Created

Parâmetros

O único parâmetro de Path é o apiId (ID da API) na URL.

Corpo da Requisição (Body)

O corpo da requisição deve ser um objeto JSON.

CampoTipoObrigatórioDescrição
namestringSimNome da oportunidade (Título).
descriptionstringNãoDescrição detalhada da oportunidade.
valuenumberSimValor total da oportunidade.
expectedCloseDatestring ($date)NãoData esperada para o fechamento da oportunidade (formato ISO 8601).
contactIdnumberSimID do Contato que será associado à oportunidade.
responsibleIdstringNãoID do atendente/usuário responsável pela oportunidade.
pipelineStepIdnumberSimID da etapa do pipeline em que a oportunidade será criada.
userIdstringNãoID do usuário que está criando a oportunidade (geralmente o mesmo que responsibleId ou o usuário do sistema).
productsOpportunityarrayNãoLista de produtos/serviços associados à oportunidade.
productsOpportunity[].productIdnumberSimID do produto.
productsOpportunity[].amountnumberSimQuantidade do produto.
productsOpportunity[].valuenumberSimValor unitário do produto.

Exemplo de Uso

Criação de uma oportunidade com dois itens de produto, atribuída ao contactId: 123 e na pipelineStepId: 1:

Bash
curl --location --request POST 'https://chatapi.intelbrasconversas.com.br/v1/api/external/50/opportunities' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "name": "Venda de produto X (Nova Lead)",
    "description": "Oportunidade de venda inicial para cliente 123.",
    "value": 3000,
    "expectedCloseDate": "2025-12-31T23:59:59.000Z",
    "contactId": 123,
    "responsibleId": "456",
    "pipelineStepId": 1,
    "productsOpportunity": [
        {
            "productId": 789,
            "amount": 2,
            "value": 1500
        }
    ]
}'

Resposta Esperada (201 Created)

CódigoDescrição
201Oportunidade criada com sucesso.
JSON
{
  "success": true,
  "data": {
    "id": 54321,
    "name": "Venda de produto X (Nova Lead)",
    /* ... outros dados da oportunidade criada ... */
  },
  "message": "Oportunidade criada com sucesso."
}



Buscar Oportunidade por ID (GET) 

Este endpoint permite buscar os detalhes de uma oportunidade de negócio específica utilizando seu ID.

MétodoEndpointStatus de Sucesso
GET/v1/api/external/{{apiId}}/opportunities/{opportunityId}200 OK

Parâmetros

Ambos os parâmetros são fornecidos diretamente no Path (URL).

NomeTipoLocalObrigatórioDescrição
apiIdstringPathSimID da API (integração).
opportunityIdstringPathSimID numérico da oportunidade que se deseja consultar.

Exemplo de Uso

Para buscar os detalhes da oportunidade com o ID 54321 na integração de ID 50:

curl --location 'https://chatapi.intelbrasconversas.com.br/v1/api/external/50/opportunities/54321' \
--header 'Authorization: Bearer {{token}}'

Respostas Esperadas

CódigoDescrição
200Oportunidade encontrada com sucesso. O corpo da resposta (data) conterá o objeto da oportunidade.
404Oportunidade não encontrada.

Estrutura da Resposta (200 OK)

JSON
{
  "success": true,
  "data": {
    "id": 54321,
    "name": "Nome da Oportunidade",
    "value": 3000,
    "status": "open",
    "contactId": 123
    /* ... demais campos da oportunidade ... */
  },
  "message": "Sucesso"
}



Atualizar Oportunidade (PUT)

Este endpoint é utilizado para atualizar completamente os dados de uma oportunidade de negócio existente, especificada pelo seu ID.

MétodoEndpointStatus de Sucesso
PUT/v1/api/external/{{apiId}}/opportunities/{opportunityId}200 OK

Parâmetros

Ambos os parâmetros de identificação da oportunidade são fornecidos diretamente no Path (URL).

NomeTipoLocalObrigatórioDescrição
apiIdstringPathSimID da API (integração).
opportunityIdstringPathSimID numérico da oportunidade a ser atualizada.

Corpo da Requisição (Body)

O corpo da requisição deve ser um objeto JSON contendo os campos que serão atualizados. O método PUT geralmente exige que todos os campos necessários sejam enviados, mesmo aqueles que não foram alterados, mas neste caso, é comum que a API aceite apenas os campos que se deseja modificar.

CampoTipoDescrição
namestringNome atualizado da oportunidade.
descriptionstringDescrição atualizada.
valuenumberNovo valor da oportunidade.
expectedCloseDatestring ($date)Nova data esperada para o fechamento (formato ISO 8601).
responsibleIdstringID do novo atendente/usuário responsável.
pipelineStepIdnumberID da nova etapa do pipeline (movimentação no funil).
userIdstringID do usuário que está realizando a atualização.

Exemplo de Uso

Atualizando o nome, valor, responsável e movendo a oportunidade 54321 para a etapa 2 do pipeline:

curl --location --request PUT 'https://chatapi.intelbrasconversas.com.br/v1/api/external/50/opportunities/54321' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "name": "Venda de produto X - Atualizada",
    "description": "Descrição atualizada da oportunidade",
    "value": 2000,
    "expectedCloseDate": "2025-12-31T23:59:59.000Z",
    "responsibleId": "789",
    "pipelineStepId": 2,
    "userId": "456"
}'

Respostas Esperadas

CódigoDescrição
200Oportunidade atualizada com sucesso.
400Erro de validação nos dados enviados.
404Oportunidade não encontrada.

Estrutura da Resposta (200 OK)

JSON
{
  "success": true,
  "data": {
    "id": 54321,
    "name": "Venda de produto X - Atualizada",
    "pipelineStepId": 2
    /* ... demais dados da oportunidade atualizada ... */
  },
  "message": "Oportunidade atualizada com sucesso."
}


Atualizar Status da Oportunidade (PUT)

Este endpoint é usado para alterar o status de uma oportunidade para open (Aberta), won (Ganha) ou lost (Perdida).

MétodoEndpointStatus de Sucesso
PUT/v1/api/external/{{apiId}}/opportunities/{opportunityId}/status200 OK

Parâmetros

Ambos os parâmetros de identificação da oportunidade são fornecidos diretamente no Path (URL).

NomeTipoLocalObrigatórioDescrição
apiIdstringPathSimID da API (integração).
opportunityIdstringPathSimID numérico da oportunidade a ter o status alterado.

Corpo da Requisição (Body)

O corpo da requisição deve ser um objeto JSON. O campo pipelineStepId é opcional, mas recomendado para garantir que a oportunidade seja movida para a etapa final correta (won ou lost).

CampoTipoObrigatórioDescriçãoValores Possíveis
statusstringSimNovo status da oportunidade.open, won, lost
pipelineStepIdnumberNãoID da etapa do pipeline para onde a oportunidade será movida (necessário para fechamento).
closingReasonIdnumberCondicionalID do motivo de fechamento. Pode ser obrigatório se o status for lost, dependendo da configuração do sistema.

Exemplo de Uso

a) Marcar Oportunidade como Ganha e movê-la para a etapa final (pipelineStepId: 5):

curl --location --request PUT 'https://chatapi.intelbrasconversas.com.br/v1/api/external/50/opportunities/54321/status' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "status": "won",
    "pipelineStepId": 5
}'

b) Marcar Oportunidade como Perdida (pode exigir closingReasonId):

curl --location --request PUT 'https://chatapi.intelbrasconversas.com.br/v1/api/external/50/opportunities/54321/status' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "status": "lost",
    "closingReasonId": 10
}'

Respostas Esperadas

CódigoDescrição
200Status da oportunidade atualizado com sucesso.
400Erro de validação (ex: campo obrigatório ausente, como closingReasonId para status lost).
404Oportunidade não encontrada.

Estrutura da Resposta (200 OK)

JSON
{
  "success": true,
  "data": {
    "id": 54321,
    "status": "won",
    "pipelineStepId": 5
    /* ... demais dados da oportunidade atualizada ... */
  },
  "message": "Status atualizado com sucesso."
}

 


API Produtos

Listar Produtos Ativos (GET)

Este endpoint permite listar todos os produtos que estão atualmente ativos na conta (tenant).

MétodoEndpointStatus de Sucesso
GET/v1/api/external/{{apiId}}/products200 OK

Parâmetros

O único parâmetro de identificação da sua integração é fornecido no Path (URL).

NomeTipoLocalObrigatórioDescrição
apiIdstringPathSimID da API (integração).

Exemplo de Uso

Para listar todos os produtos ativos da integração de ID 50:

Bash
curl --location 'https://chatapi.intelbrasconversas.com.br/v1/api/external/50/products' \
--header 'Authorization: Bearer {{token}}'

Respostas Esperadas

CódigoDescrição
200Lista de produtos ativos retornada com sucesso.
401Token de autenticação inválido.
403Sessão não autorizada ou sem permissão para acessar o recurso.

Estrutura da Resposta (200 OK)

CampoTipoDescrição
successbooleanIndica se a requisição foi bem-sucedida.
dataarrayLista de objetos de produtos ativos.
data[].idnumberID do produto.
data[].namestringNome do produto.
data[].descriptionstringDescrição do produto.
data[].valuenumberValor de venda do produto.
data[].isActivebooleanStatus de atividade do produto (deve ser true).
messagestringMensagem de status da requisição.
JSON
{
  "success": true,
  "data": [
    {
      "id": 101,
      "name": "Software X Pro",
      "description": "Licença Pro do software de gestão",
      "value": 500.00,
      "duration": 12,
      "isActive": true,
      "tenantId": 1,
      "userId": 183,
      "createdAt": "2025-10-29T20:09:56.176Z",
      "updatedAt": "2025-10-29T20:09:56.176Z"
    }
  ],
  "message": "Produtos ativos listados com sucesso"
}




API Pipeline Steps

Listar Etapas do Funil (GET)

Este endpoint retorna a lista de todas as etapas (Pipeline Steps) configuradas no funil de vendas (pipeline) da sua conta (tenant).

MétodoEndpointStatus de Sucesso
GET/v1/api/external/{{apiId}}/pipeline-steps200 OK

Parâmetros

O único parâmetro necessário para acessar este recurso é o ID da sua integração.

NomeTipoLocalObrigatórioDescrição
apiIdstringPathSimID da API (integração).

Exemplo de Uso

Para listar todas as etapas do pipeline da integração de ID 50:

Bash

Respostas Esperadas

CódigoDescrição
200Lista de etapas do pipeline retornada com sucesso.
401Token de autenticação inválido.
403Sessão não autorizada ou sem permissão de acesso.

Estrutura da Resposta (200 OK)

CampoTipoDescrição
successbooleanIndica se a requisição foi bem-sucedida.
dataarrayLista de objetos das etapas do pipeline.
data[].idnumberID da etapa (usado para mover oportunidades).
data[].namestringNome da etapa (Ex: "Prospecção", "Negociação").
data[].colorstringCor associada à etapa.
data[].ordernumberOrdem em que a etapa aparece no pipeline.
messagestringMensagem de status da requisição.
JSON
{
  "success": true,
  "data": [
    {
      "id": 1,
      "name": "Nova Oportunidade",
      "color": "#FF0000",
      "order": 1,
      "tenantId": 1,
      "createdAt": "2025-10-29T20:12:19.973Z",
      "updatedAt": "2025-10-29T20:12:19.973Z"
    },
    {
      "id": 2,
      "name": "Qualificação",
      "color": "#00FF00",
      "order": 2,
      "tenantId": 1,
      "createdAt": "2025-10-29T20:12:19.973Z",
      "updatedAt": "2025-10-29T20:12:19.973Z"
    }
  ],
  "message": "Pipeline steps listados com sucesso"
}



Fonte base da documentação no produto: https://chat.intelbrasconversas.com.br/#/docs





Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo