Documentação da API Chat InfoTecMG

API para integração com o sistema de atendimento ao cliente da InfoTecMG

Visão Geral

A API do Chat InfoTecMG permite que você integre o sistema de chat em tempo real da InfoTecMG com seus próprios aplicativos e serviços.

Com esta API, você pode:

  • Gerenciar contas e agentes
  • Criar e gerenciar caixas de entrada
  • Interagir com contats e conversas
  • Enviar e receber mensagens
  • Configurar webhooks para eventos

A API segue o padrão REST e retorna respostas em formato JSON.

Autenticação

Para autenticar na API do Chat InfoTecMG, você precisa incluir um token de acesso no cabeçalho de autorização de suas requisições.

Token de Acesso

Você pode obter seu token de acesso nas configurações da sua conta no painel do Chat InfoTecMG.

Authorization: Bearer {seu_token_de_acesso}

Substitua {seu_token_de_acesso} pelo token real fornecido pelo sistema.

Exemplo de Requisição

curl -X GET https://chatwoot.infotecmg.net/api/v1/accounts \
-H 'Authorization: Bearer {seu_token_de_acesso}'

Limite de Taxa

A API do Chat InfoTecMG tem limites de taxa para garantir a estabilidade do serviço:

  • 100 requisições por minuto por token de acesso
  • 10 requisições por segundo por token de acesso

Se você exceder esses limites, receberá uma resposta 429 Too Many Requests.

Erros

A API usa códigos de status HTTP convencionais para indicar sucesso ou falha:

Código Status Descrição
400 Bad Request A requisição é inválida ou está faltando parâmetros obrigatórios
401 Unauthorized Token de autenticação ausente ou inválido
403 Forbidden Você não tem permissão para acessar este recurso
404 Not Found O recurso solicitado não foi encontrado
429 Too Many Requests Você excedeu o limite de taxa
500 Internal Server Error Ocorreu um erro no servidor

Contas

GET /api/v1/accounts

Lista todas as contas disponíveis para o usuário autenticado.

Exemplo de Requisição

curl -X GET https://chatwoot.infotecmg.net/api/v1/accounts \
-H 'Authorization: Bearer {seu_token_de_acesso}'

Exemplo de Resposta

{
  "payload": [
    {
      "id": 1,
      "name": "InfoTecMG",
      "status": "active",
      "created_at": "2023-01-15T10:30:00Z"
    },
    {
      "id": 2,
      "name": "Suporte Técnico",
      "status": "active",
      "created_at": "2023-02-20T14:45:00Z"
    }
  ]
}
POST /api/v1/accounts

Cria uma nova conta.

Parámetros

Nome Tipo Obrigatório Descrição
name string Sim Nome da conta
locale string Não Idioma padrão (ex: 'pt-BR')

Exemplo de Requisição

curl -X POST https://chatwoot.infotecmg.net/api/v1/accounts \
-H 'Authorization: Bearer {seu_token_de_acesso}' \
-H 'Content-Type: application/json' \
-d '{
  "name": "Nova Conta",
  "locale": "pt-BR"
}'

Exemplo de Resposta

{
  "id": 3,
  "name": "Nova Conta",
  "locale": "pt-BR",
  "status": "active",
  "created_at": "2023-06-10T09:15:00Z"
}

Agentes

GET /api/v1/accounts/{account_id}/agents

Lista todos os agentes de uma conta específica.

Exemplo de Requisição

curl -X GET https://chatwoot.infotecmg.net/api/v1/accounts/1/agents \
-H 'Authorization: Bearer {seu_token_de_acesso}'

Exemplo de Resposta

{
  "payload": [
    {
      "id": 1,
      "name": "João Silva",
      "email": "[email protected]",
      "role": "administrator",
      "available": true,
      "created_at": "2023-01-10T08:00:00Z"
    },
    {
      "id": 2,
      "name": "Maria Souza",
      "email": "[email protected]",
      "role": "agent",
      "available": false,
      "created_at": "2023-02-15T09:30:00Z"
    }
  ]
}

Caixas de Entrada

GET /api/v1/accounts/{account_id}/inboxes

Lista todas as caixas de entrada de uma conta específica.

Exemplo de Requisição

curl -X GET https://chatwoot.infotecmg.net/api/v1/accounts/1/inboxes \
-H 'Authorization: Bearer {seu_token_de_acesso}'

Exemplo de Resposta

{
  "payload": [
    {
      "id": 1,
      "name": "Suporte Geral",
      "channel_type": "web",
      "status": "active",
      "created_at": "2023-01-20T10:00:00Z"
    },
    {
      "id": 2,
      "name": "WhatsApp",
      "channel_type": "whatsapp",
      "status": "active",
      "created_at": "2023-03-05T14:20:00Z"
    }
  ]
}

Contatos

GET /api/v1/accounts/{account_id}/contacts

Lista todos os contatos de uma conta específica.

Parámetros de Consulta

Nome Tipo Obrigatório Descrição
page integer Não Número da página (padrão: 1)
query string Não Termo para filtrar contatos

Exemplo de Requisição

curl -X GET "https://chatwoot.infotecmg.net/api/v1/accounts/1/contacts?page=1&query=joao" \
-H 'Authorization: Bearer {seu_token_de_acesso}'

Exemplo de Resposta

{
  "payload": [
    {
      "id": 1,
      "name": "João da Silva",
      "email": "[email protected]",
      "phone_number": "+5511999999999",
      "custom_attributes": {
        "empresa": "ABC Ltda",
        "cargo": "Gerente"
      },
      "created_at": "2023-01-25T11:20:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 1
  }
}

Conversas

GET /api/v1/accounts/{account_id}/conversations

Lista todas as conversas de uma conta específica.

Exemplo de Requisição

curl -X GET https://chatwoot.infotecmg.net/api/v1/accounts/1/conversations \
-H 'Authorization: Bearer {seu_token_de_acesso}'

Exemplo de Resposta

{
  "payload": [
    {
      "id": 1,
      "contact": {
        "id": 1,
        "name": "João da Silva"
      },
      "inbox": {
        "id": 1,
        "name": "Suporte Geral"
      },
      "status": "open",
      "agent_last_seen_at": "2023-06-10T10:30:00Z",
      "created_at": "2023-06-10T10:15:00Z"
    },
    {
      "id": 2,
      "contact": {
        "id": 2,
        "name": "Maria Souza"
      },
      "inbox": {
        "id": 2,
        "name": "WhatsApp"
      },
      "status": "pending",
      "agent_last_seen_at": null,
      "created_at": "2023-06-10T09:45:00Z"
    }
  ]
}

Mensagens

POST /api/v1/accounts/{account_id}/conversations/{conversation_id}/messages

Envia uma mensagem em uma conversa específica.

Parámetros

Nome Tipo Obrigatório Descrição
content string Sim Conteúdo da mensagem
message_type string Sim Tipo de mensagem (outgoing ou incoming)
private boolean Não Se a mensagem é privada (padrão: false)

Exemplo de Requisição

curl -X POST https://chatwoot.infotecmg.net/api/v1/accounts/1/conversations/1/messages \
-H 'Authorization: Bearer {seu_token_de_acesso}' \
-H 'Content-Type: application/json' \
-d '{
  "content": "Olá, como posso ajudar?",
  "message_type": "outgoing",
  "private": false
}'

Exemplo de Resposta

{
  "id": 123,
  "content": "Olá, como posso ajudar?",
  "message_type": "outgoing",
  "content_type": "text",
  "created_at": "2023-06-10T11:00:00Z",
  "sender": {
    "id": 1,
    "name": "João Silva",
    "type": "user"
  }
}

Webhooks

POST /api/v1/accounts/{account_id}/webhooks

Cria um novo webhook para uma conta específica.

Parámetros

Nome Tipo Obrigatório Descrição
url string Sim URL que receberá os eventos
subscriptions array Sim Eventos para assinar (ex: ["conversation.created", "message.created"])

Eventos Disponíveis

  • conversation.created - Nova conversa criada
  • conversation.resolved - Conversa resolvida
  • conversation.reopened - Conversa reaberta
  • message.created - Nova mensagem criada
  • contact.created - Novo contato criado
  • contact.updated - Contato atualizado

Exemplo de Requisição

curl -X POST https://chatwoot.infotecmg.net/api/v1/accounts/1/webhooks \
-H 'Authorization: Bearer {seu_token_de_acesso}' \
-H 'Content-Type: application/json' \
-d '{
  "url": "https://sua-api.com/webhooks/chat",
  "subscriptions": ["conversation.created", "message.created"]
}'

Exemplo de Resposta

{
  "id": 1,
  "url": "https://sua-api.com/webhooks/chat",
  "subscriptions": ["conversation.created", "message.created"],
  "status": "active",
  "created_at": "2023-06-10T12:00:00Z"
}

Widget de Chat

O widget de chat permite que você adicione o chat do InfoTecMG diretamente em seu site.

Instalação

Adicione o seguinte código JavaScript ao seu site:

<script>
  window.chatwootSettings = {
    websiteToken: '{seu_website_token}',
    baseUrl: 'https://chatwoot.infotecmg.net'
  };
  (function(d,t) {
    var BASE_URL = 'https://chatwoot.infotecmg.net';
    var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
    g.src=BASE_URL+'/packs/js/sdk.js';
    g.defer = true;
    g.async = true;
    s.parentNode.insertBefore(g,s);
    g.onload=function(){
      window.chatwootSDK.run({
        websiteToken: '{seu_website_token}',
        baseUrl: BASE_URL
      })
    }
  })(document,'script');
</script>

Substitua {seu_website_token} pelo token do seu website, que pode ser encontrado nas configurações da sua caixa de entrada no painel do Chat InfoTecMG.

Integrações

O Chat InfoTecMG oferece integração com vários serviços populares:

WhatsApp

Integração com WhatsApp Business

Facebook Messenger

Integração com Messenger

Twitter

Integração com Direct Messages

Email

Integração com email

Configurando Integrações

Para configurar integrações, acesse o painel do Chat InfoTecMG e navegue até Configurações > Integrações.