API v2

Bem-vindo à API Huggy. Com ela, você pode gerenciar todos os agentes, contatos e atender seus clientes, enviar e receber mensagens. Essa API permite executar ações programaticamente na conta da sua empresa.

Nossa API nativamente suporta o formato:

  • REST

    O sistema deve fazer uma solicitação para o URL https://api.huggy.app/v2, enviando os parâmetros por GET, POST, PUT ou DELETE. Para cada solicitação, a resposta será um objeto JSON, que é detalhado ao longo desta documentação.

Autenticação

A autenticação da APIv2 é feita mediante o token de acesso que pode ser adquirido através de uma conta na plataforma conforme demonstrado na imagem abaixo:

Autenticação APIv2

Para isso, você deve fornecer um cabeçalho de Autorização em cada solicitação feita, seguindo o formato:

    X-Authorization: Bearer xxxxxxxxxx
1

Headers

Todos os pedidos também devem incluir os seguintes headers:

  • Content-Type: application/json
  • Accept: application/json
  • Authorization: Bearer xxxxxxx

Request

Requisições feitas na APIv2 possuem o modelo de URL https://api.huggy.app/v2/recurso...

Response

Algumas requisições bem-sucedidas podem ser respondidas com um status 200 ou 204 sem que um corpo retorne, como em requisições que utilizam os métodos POST e DELETE.

Paginação

O parâmetro de paginação está previsto para todos os endpoints que listam o conteúdo de um determinado recurso. Essa lista se limita a 20 resultados e os recursos remanescentes, se existirem, podem ser acessados com um parâmetro de consulta ?page=1 em uma requisição. Esta paginação começa em 0 (primeira página). Se a página solicitada não existir, uma lista vazia [] é retornada no corpo da resposta.

Respostas usuais do servidor:

  • 200 OK - o pedido foi bem sucedido.
  • 201 Created - o pedido foi bem sucedido e um recurso foi criado.
  • 204 Modified - o pedido foi bem sucedido e um recurso foi modificado.
  • 400 Bad Request - o pedido não pôde ser entendido ou faltavam os parâmetros necessários. Verifique o motivo na resposta do corpo.
  • 401 Unauthorized - falha na autenticação ou o usuário não possui permissões para a operação solicitada. Verifique o token da API, ele pode estar errado.
  • 403 Forbidden - o cliente não tem direitos de acesso ao conteúdo, portanto, o servidor é reservado a não dar mais respostas. Diferente do código 401, aqui a identidade do cliente é conhecida.
  • 404 Not Found - o recurso não foi encontrado. Isso pode ser causado por um ID não existente.
  • 423 Locked - O recurso sendo acessado está bloqueado, não sendo possível, no momento, nenhuma interação com ele.
  • 501 Request Failed - pode ser causada por um método de solicitação incorreto.

Exemplos práticos

Agentes

GET/agents

Visualizar todos os agentes

Obtém a lista de todos os agentes da company.

Response 200

[
    {
        "id": 12162,
        "name": "John Doe"
    },
    {
        "id": 11839,
        "name": "Nicolas Tesla"
    },
    {
        "id": 11433,
        "name": "Linus Torvalds"
    },
    {
        "id": 11432,
        "name": "Dennis Ritchie"
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

GET/agents/{id}

Visualizar um agente

Obtém os dados de um agente através do seu ID.

ParameterTypeDescription
idintegerIdentificador do agente
id
integer

Exemplo: Identificador do agente


Response 200

{
    "id": "34146",
    "name": "John Doe",
    "email": "john@doe.com",
    "login": "johndoe",
    "type": 3,
    "phone": "551199999999"
}
1
2
3
4
5
6
7
8

Response 400

{
    "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

POST/agents

Convidar um novo agente

Convida um novo agente para a plataforma Huggy.

Nota: Um novo agente só será visível após o aceite no e-mail de confirmação.

ParameterTypeDescription
idintegerE-mail do novo agente
idintegerE-mail do novo agente
id
integer

Exemplo: E-mail do novo agente


id
integer

Exemplo: E-mail do novo agente


Request example

{
  "email": "john@doe.com",
  "type": 1
}
1
2
3
4

Um agente é definido pelo seu perfil de acesso, sendo este representado pela atributo type que recebe um valor numérico, onde:

DefinitionTypeKeyValue
AgentintegerType1
GerenteintegerType2
AdministradorintegerType3
Agent
integer

Exemplo: Type

1


Gerente
integer

Exemplo: Type

2


Administrador
integer

Exemplo: Type

3


Response 400

{
    "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 500

{
    "reason": "Agente já conectado"
}
1
2
3

PUT/agents/{id}

Atualizar um agente

Atualiza os dados de um agente.

Note: O campo password deve conter pelo menos oito caracteres.

ParameterTypeDescription
idintegerIdentificador do agente
id
integer

Exemplo: Identificador do agente


Body parameters

ParameterTypeDescription
namestringNome do agente
loginstringLogin do agente
emailstringEndereço de e-mail do agenteoptional
passwordstringSenha do agenteoptional
typeintegerDefinição de escopo do agenteoptional
phonestringNúmero de telefone do agenteoptional
activebooleanDefinição de atividade do agente na plataformaoptional
name
string

Exemplo: Nome do agente


login
string

Exemplo: Login do agente


email
string

Exemplo: Endereço de e-mail do agente

optional


password
string

Exemplo: Senha do agente

optional


type
integer

Exemplo: Definição de escopo do agente

optional


phone
string

Exemplo: Número de telefone do agente

optional


active
boolean

Exemplo: Definição de atividade do agente na plataforma

optional


Request example

    {        
        "name": "John Doe",        
        "login": "johndoe",
        "email": "john@doe.com",
        "password": "12345678",
        "type": 2,
        "phone": "551199999999",
        "active": true
    }
1
2
3
4
5
6
7
8
9

Response 400

{
    "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Contatos

GET/contacts

Visualizar todos os contatos

Obtém a lista de todos os contatos.

✔️ Veja como exportar os seus contatos para uma planilha usando esse endpoint.

Nota: O payload de retorno desta requisição possui um atributo customFields. Uma lista que retornará vazia caso não haja campos personalizados cadastrados.

Response 200

[
    {
        "id": 8307934,
        "name": "John",
        "email": john@doe.com,
        "mobile": 1199999999,
        "phone": 1133333333,
        "customFields": []
    },
    {
        "id": 8227983,
        "name": "Tesla",
        "email": "nicolas@tesla.com",
        "mobile": "1199999999",
        "phone": "1133333333",
        "birthday": null,
        "customFields": {
            "segundo_email_customer": "nicolas@dev.com",
            "cpf_customer": "03600000041",
            "data_customer": "14/10/2019",
            "hora_customer": "20:30",
            "numero_customer": "104",
            "perfil_customer": "Nivel 5",
            "telefone_customer": "+557599999999",
            "cnpj_customer": "00.000.000/0001-00"
        }
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

GET/contacts/{id}

Visualizar um contato

Obtém os dados de um contato através do seu ID.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Exemplo: Identificador do contato


Response 200

{
    "id": 8227983,
    "name": "John",
    "email": "john@doe.com",
    "mobile": "1199999999",
    "phone": "1133333333",
    "birthday": null,
    "customFields": {
        "segundo_email_customer": "john@doe.com",
        "cpf_customer": "03600000041",
        "data_customer": "14/10/2019",
        "hora_customer": "20:30",
        "numero_customer": "104",
        "perfil_customer": "Nivel 5",
        "telefone_customer": "+551199999999",
        "cnpj_customer": "00.000.000/0001-00"
    },
    "channels": {
        "voip": true,
        "messenger": false,
        "widget": false,
        "whatsapp": false,
        "email": true,
        "sms": true,
        "telegramBot": false,
        "whatsappApi": false,
        "instagram": false
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

POST/contacts

Cria um novo contato

Nota: Todos os parâmetros são requeridos no corpo da requisição

Body parameters

ParameterTypeDescription
namestringNome do contato
phonestringTelefone do contato
emailstringE-mail do contato
name
string

Exemplo: Nome do contato


phone
string

Exemplo: Telefone do contato


email
string

Exemplo: E-mail do contato


Request example

{
  "name": "John Doe",
  "phone": "5575999999999",
  "email": "john@doe.com"
}
1
2
3
4
5

Response 201

[
    {
        "id": "16156013",
        "whatsappID": null,
        "name": "John Doe",
        "companyID": "15691",
        "email": "John@doe.com",
        "photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
        "groupID": null,
        "address": null,
        "district": null,
        "state": null,
        "city": null,
        "zipCode": null,
        "gender": null,
        "obs": null,
        "birthDate": null,
        "lastSeen": "2020-06-25 11:19:56",
        "createdAt": "2020-06-25 11:20:56",
        "updatedAt": null,
        "status": 1,
        "lastSync": null,
        "syncWhatsapp": null,
        "lastChatID": null,
        "tokens": null,
        "mobile": null,
        "phone": "557599999999",
        "talkChatType": 2,
        "organizationID": null,
        "blocked": null,
        "canAutoUpdatePhoto": null,
        "telegramID": null,
        "tokenTelegram": null,
        "telegramBotCustomerID": null,
        "parentID": null,
        "nameEmoji": "John Doe",
        "photo_small": "https://c.pzw.io/img/avatar-user-boy.jpg",
        "image_small": "https://c.pzw.io/img/avatar-user-boy.jpg",
        "channelsSituation": {
            "voip": true,
            "messenger": false,
            "widget": false,
            "whatsapp": false,
            "email": true,
            "sms": false,
            "telegramBot": false,
            "whatsappApi": false,
            "instagram": false
        },
        "customFields": {
            "1199": null,
            "1194": null,
            "1195": null,
            "1196": null,
            "1197": null,
            "1200": null,
            "1193": null,
            "1192": null,
            "1198": null
        },
        "custom_fields": {
            "1199": null,
            "1194": null,
            "1195": null,
            "1196": null,
            "1197": null,
            "1200": null,
            "1193": null,
            "1192": null,
            "1198": null
        },
        "number": null,
        "type": 2,
        "isEditable": true,
        "messengerId": null,
        "groups": [],
        "organizations": [],
        "organization": false,
        "parent": null,
        "links": []
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

Response 400

{
   "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
1
2
3

PUT/contacts/{id}

Atualizar um contato

Atualiza um contato através do seu ID.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Exemplo: Identificador do contato


Body parameters

ParameterTypeDescription
namestringNome do contato
namestringNome do contato
emailstringE-mail do contato
phonestringTelefone do contatoopcional
mobilestringCelular do contatoopcional
addressstringEndereço do contatoopcional
citystringCidade do contatoopcional
districtstringDistrito do contatoopcional
statestringEstado do contatoopcional
obsstringComentários, observaçõesopcional
name
string

Exemplo: Nome do contato


name
string

Exemplo: Nome do contato


email
string

Exemplo: E-mail do contato


phone
string

Exemplo: Telefone do contato

opcional


mobile
string

Exemplo: Celular do contato

opcional


address
string

Exemplo: Endereço do contato

opcional


city
string

Exemplo: Cidade do contato

opcional


district
string

Exemplo: Distrito do contato

opcional


state
string

Exemplo: Estado do contato

opcional


obs
string

Exemplo: Comentários, observações

opcional


Nota: Dentre os atributos que devem ser passados no corpo da requisição, name, email ou phone são obrigatórios.

Request example

{  
  "name": "john Doe",  
  "email": "john@doe.com",
  "mobile": "1199999999", 
  "phone": "1133333333",
  "address": "Rua Roque Petroni JR",
  "city": "São Paulo",
  "district": "Morumbi",
  "state": "São Paulo",
  "obs": "Esse é um campo para adicionar observações sobre o contato"
}
1
2
3
4
5
6
7
8
9
10
11

Response 204

Requisição bem sucedida com o body vazio
1

Response 400

{
   "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
1
2
3

DELETE/contacts/{id}

Excluir um contato

Exclui um contato através do seu ID.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Exemplo: Identificador do contato


Request example

{

}
1
2
3

Response 204

Requisição bem sucedida com o body vazio
1

Chats

GET/chats

Visualizar todos os chats

Obtém a lista de todos os chats.

Response 200

[
    {
        "id": 13123230,
        "agentId": 34146,
        "secondAgentId": 8792,
        "contactId": null,
        "siteCustomerId": null,
        "messengerId": null,
        "departmentId": null,
        "tabulationId": null,
        "channels": [],
        "queueNumber": null,
        "createdAt": "2019-10-29 16:06:00",
        "updatedAt": "2019-10-29 16:06:00",
        "attendedAt": null,
        "closedAt": null
    },
    {
        "id": 13123115,
        "agentId": 34146,
        "secondAgentId": null,
        "contactId": 5081376,
        "siteCustomerId": null,
        "messengerId": null,
        "departmentId": null,
        "tabulationId": null,
        "channels": [
            {
                "uuid": "325c3456-9981-43f5-8705-xxxxxxxxxxxx",
                "id": "john@doe.com",
                "name": "John Doe",
                "type": "Email"
            }
        ],
        "queueNumber": null,
        "createdAt": "2019-10-24 15:22:50",
        "updatedAt": "2019-10-24 15:23:00",
        "attendedAt": "2019-10-24 15:22:54",
        "closedAt": null
    },
    {
        "id": 13119881,
        "agentId": 34146,
        "secondAgentId": null,
        "contactId": 5081359,
        "siteCustomerId": null,
        "messengerId": null,
        "departmentId": null,
        "tabulationId": null,
        "channels": [
            {
                "uuid": "325c3456-9981-43f5-8705-xxxxxxxxxxxx",
                "id": "john@doe.com",
                "name": "John Doe",
                "type": "Email"
            }
        ],
        "queueNumber": null,
        "createdAt": "2019-06-11 11:44:10",
        "updatedAt": "2019-06-11 11:44:33",
        "attendedAt": "2019-06-11 11:44:14",
        "closedAt": null
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

GET/chats/{id}

Visualizar os detalhes de um chat

Obtém os dados detalhados de um chat a partir de seu ID.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Exemplo: Identificador do chat


Response 200

{
    "id": 13124123,
    "agentId": 34146,
    "secondAgentId": null,
    "contactId": null,
    "siteCustomerId": 1842168,
    "messengerId": null,
    "departmentId": null,
    "tabulationId": null,
    "channels": [
        {
            "uuid": "193e8c7d-7071-47ef-9c3b-0809196a8192",
            "id": 6944,
            "name": "Widget",
            "type": "Widget"
        }
    ],
    "queueNumber": null,
    "createdAt": "2019-12-05 16:22:14",
    "updatedAt": "2019-12-05 16:45:28",
    "attendedAt": "2019-12-05 16:22:27",
    "closedAt": "2019-12-05 16:45:28"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

GET/chats/{id}/messages

Listar mensagens

Obtém todas as mensagens de um chat através do ID do chat.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Exemplo: Identificador do chat


Response 200

[
    {
        "id": 539800462,
        "body": "Olá Stallman",
        "is_internal": false,
        "is_email": true,
        "sender": {
            "id": 40419,
            "name": "John Doe",
            "mobile": "11999999999",
            "phone": "1133333333",
            "email": "john@doe.com",
            "photo": "https://c.pzw.io/img/avatar-user-boy.jpg"
        },
        "senderType": "agent",
        "receiver": {
            "id": 8227983,
            "name": "Stallman",
            "mobile": "1199999999",
            "phone": "1133333333",
            "email": "richard@stallman.com",
            "photo": "https://c.pzw.io/img/avatar-user-boy.jpg"
        },
        "receiverType": "email",
        "file": null,
        "channel": "email",
        "customer": {
            "id": 8227983,
            "name": "Stallman",
            "mobile": "1188888888",
            "phone": "1144444444",
            "email": "richard@stallman.com",
            "photo": "https://c.pzw.io/img/avatar-user-boy.jpg"
        },
        "chat": {
            "id": 22797236,
            "channel": "email",
            "situation": "in_chat",
            "department": false,
            "customer": {
                "id": 8227983,
                "name": "Stallman",
                "mobile": "1188888888",
                "phone": "1144444444",
                "email": "richard@stallman.com",
                "photo": "https://c.pzw.io/img/avatar-user-boy.jpg"
            }
        },
        "send_at": "2019-10-24 14:53:52",
        "read_at": null,
        "type": "0",
        "eventType": null
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

Response 400

{
   "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
1
2
3

GET/chats/{id}/feedback

Visualizar pesquisa de satisfação

Obtém a nota e a mensagem da pesquisa de satisfação do chat informado.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Exemplo: Identificador do chat


Response 200

{
    "score": "5",
    "text": "Ficamos muito contentes com o atendimento"
}
1
2
3
4

Response 400

{
   "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
1
2
3

POST/chats/{channel}

Criar um novo chat

Cria um novo chat na plataforma, passando o canal email como parâmetro na url.

Nota: Quando não for informado o parâmetro channelID, é assumido o channelID da conta principal.

ParameterTypeDescription
namestringNome do contato
phonestringTelefone do contato
emailstringEndereço de e-mail do contato
channelIDintegerIdentificador do canaloptional
messagestringMensagem enviada na abertura do atendimentooptional
departmentintegerIdentificador do departamentooptional
subjectstringAssunto da mensagemoptional
isInternalbooleanInforma se a mensagem é internaoptional
name
string

Exemplo: Nome do contato


phone
string

Exemplo: Telefone do contato


email
string

Exemplo: Endereço de e-mail do contato


channelID
integer

Exemplo: Identificador do canal

optional


message
string

Exemplo: Mensagem enviada na abertura do atendimento

optional


department
integer

Exemplo: Identificador do departamento

optional


subject
string

Exemplo: Assunto da mensagem

optional


isInternal
boolean

Exemplo: Informa se a mensagem é interna

optional


Request example

{
    "name": "John Doe",
    "phone": "551199999999",
    "email": "john@doe.com",
    "message": "Hello, John!"
}
1
2
3
4
5
6

Response 201

{
    "id": 38247402,
    "agentId": 3193,
    "secondAgentId": null,
    "contactId": 16276830,
    "siteCustomerId": null,
    "messengerId": null,
    "departmentId": null,
    "tabulationId": null,
    "channels": [
        {
            "uuid": "89a482f8-f15b-11e8-7969-0ee2o7d4bad8",
            "id": "johndoe@huggy.io",
            "name": "John Doe",
            "type": "Email"
        }
    ],
    "workflowID": null,
    "workflowStepID": null,
    "queueNumber": null,
    "createdAt": "2020-06-30 10:58:15",
    "updatedAt": "2020-10-09 12:13:15",
    "attendedAt": "2020-08-07 10:09:39",
    "closedAt": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

Response 400

{
    "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

POST/chats/{id}/close

Finalizar um atendimento

Finaliza um atendimento de chat através do ID do chat.

Nota: Defina o parâmetro sendFeedback como true quando quiser que o usuário avalie o atendimento.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Exemplo: Identificador do chat


Request example

{
    "sendFeedback": true
}
1
2
3

Response 201

Requisição bem sucedida com o body vazio
1

Response 400

{
   "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
1
2
3

POST/chats/{id}/queue

Colocar atendimento na fila de espera

Coloca um chat na fila de atendimento através do ID do chat.

NOTA: Somente poderão ser colocados na fila chats que estiverem em atendimento por algum agente.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Exemplo: Identificador do chat


Response 201

Requisição bem sucedida com o body vazio
1

Response 400

{
   "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
1
2
3

POST/chats/{id}/messages

Enviar Mensagem

Envia uma mensagem para um chat. Defina o parâmetro isInternal como true quando quiser enviar uma mensagem interna para o chat.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Exemplo: Identificador do chat


Body parameters

ParameterTypeDescription
textstringMensagem de texto enviada ao chat
isInternalbooleanInforma se o chat é interno
text
string

Exemplo: Mensagem de texto enviada ao chat


isInternal
boolean

Exemplo: Informa se o chat é interno


Request example

{
    "text": "Olá John!",
    "isInternal": false
}
1
2
3
4

Response 201

Requisição bem sucedida com o body vazio
1

Response 400

{
   "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
1
2
3

POST/chats/{id}/reopen

Reabrir um chat

Faz a reabertura de um chat, passando seu ID como parâmetro na requisição.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Response 201

Requisição bem sucedida com o body vazio
1

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca."
}
1
2
3

POST /chats/{id}/situation

Alterar a situação do chat

Altera a situação do chat a partir do ID.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Exemplo: Identificador do chat


Body parameters

ParameterTypeDescription
autostringChat em distribuição automática
wait_for_chatstringAguardando atendimento
in_chatstringEm atendimento
blockedstringChat bloqueado para atendimento
auto
string

Exemplo: Chat em distribuição automática


wait_for_chat
string

Exemplo: Aguardando atendimento


in_chat
string

Exemplo: Em atendimento


blocked
string

Exemplo: Chat bloqueado para atendimento


Request example

{
    "situation": "wait_for_chat"
}
1
2
3

Response 201

Requisição bem sucedida com o body vazio
1

Response 400

{
   "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
1
2
3

POST/chats/{id}/tags

Definir tags

Nota: Para a definição de mais de uma tag, separe-as por vírgula.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Exemplo: Identificador do chat


Body parameters

ParameterTypeDescription
tagsstringTags que representam o assunto de uma determinada interação
tags
string

Exemplo: Tags que representam o assunto de uma determinada interação


Request example

{
    "tags" : "tag1, tag2"
}
1
2
3

Response 400

{
   "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
1
2
3

POST/chats/{id}/flow

Executar flow

Execute um Flow a partir de um chat que não esteja finalizado ou que não seja do tipo interno. Caso o chat já possua um Flow em processamento, este será abortado e a execução do novo Flow será iniciada.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Exemplo: Identificador do chat


Body parameters

ParameterTypeDescription
flowIdintegerIdentificador do flow
flowId
integer

Exemplo: Identificador do flow


Request example

{
    "flowId" : 142714
}
1
2
3

Response 200

Requisição bem sucedida com o body vazio
1

Response 400

{
   "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
1
2
3

Flows

POST/flows/{flowId}/contact/{contactId}/exec

Executar um Flow para um contato

Inicializa a execução de um Flow para um contato específico.

Canais que podem utilizar este recurso:

  • Email
  • Messenger
  • TelegramBot
  • Whatsapp

Para especificar o canal que será utilizado para executar o Flow, é necessário o envio do uuid, que corresponde ao identificador universal do canal.

O valor do uuid pode ser obtido no painel Huggy em "configurações" >> "canais" >> "canal desejado" >> detalhamento do canal.

Além do uuid, existem mais 4 atributos que podem ser informados durante a requisição:

variables ( object )

Corresponde aos campos que podem ser utilizados durante a execução do Flow.

"variables": { 
    "data": "15/10/2019",
    "url_event": "https://huggy.io"
}
1
2
3
4

Exemplo de funcionamento

Na declaração de variables acima, existem dois termos que podem ser utilizados durante a execução do Flow: data e url_event. Para que esses dois termos sejam utilizados é necessário informá-los em alguma parte das ações do Flow, por exemplo, na ação de enviar mensagem.

Ao enviar uma mensagem com o seguinte texto:

"Olá, boa tarde. O evento será no dia {{ data }}. Segue o link de acesso {{ url_event }}".

O sistema irá substituir os termos data e url_event pelos valores informados na declaração das variáveis, ficando da seguinte maneira:

"Olá, boa tarde. O evento será no dia 15/10/2019. Segue o link de acesso https://huggy.io".

Nota: default { }


whenInChat ( true | false )

Se o chat estiver em atendimento com o agente, as seguintes condições serão levadas em consideração:

  • true: Executa o Flow e remove o agente da conversa (o chat volta para o status automático).

  • false: Não executa o Flow.

Nota: default false


`whenWaitForChat` ( true | false )

Se o chat estiver na fila, são levadas em consideração as seguintes condições:

  • true: Não executa o Flow.

  • false: Chat volta para o status automático.

Nota: default false


`whenInAuto` ( true | false )

Se estiver em automático e/ou possuir outro Flow em processamento, serão levadas em consideração as seguintes condições:

  • true: Abortar o Flow atual e iniciar a execução do Flow informado.

  • false: Não faz nada.

Nota: default false


Observações:
Para o funcionamento deste recurso nos canais Messenger e TelegramBot o contato informado precisa ter vínculo com a empresa, ou seja, é necessário que o contato já tenha feito algum atendimento com a empresa pelos canais citados

  • Para o canal whatsapp, é possivél executar o Flow sem que tenha existido um atendimento anterior. No entanto, o número do telefone do contato precisa estar válido: Código de área do país (55-Brasil) + código de área do estado (DDD) + o número do telefone. Ex. 5511988886666.

  • Caso algum dos quatros atributos explicados acima não seja informado na requisição, o sistema pegará o valor default de cada um.

  • Se não houver um chat aberto com o contato, será criado um novo chat.

ParameterTypeDescription
flowIdintegerIdentificador do flow
contactIdintegerIdentificador do contato
flowId
integer

Exemplo: Identificador do flow


contactId
integer

Exemplo: Identificador do contato


Request example

{
  "uuid": "",
  "variables": {
    "data": "15/10/2019",
    "url_event": "https://huggy.io"
  },
  "whenInChat": true,
  "whenWaitForChat": true,
  "whenInAuto": true
}
1
2
3
4
5
6
7
8
9
10

Response 200

{
    "reason": "Flow processed",
    "chatID": 19291350
}            
1
2
3
4

Response 200

{
    "reason": "Flow processed and agent removed from chat",
    "chatID": 19291350
}   
1
2
3
4

Response 400

{
   "reason": "Esta mensagem informará o que ocasionou o erro"
}
1
2
3

Response 404

{
   "reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
1
2
3