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:
Para isso, você deve fornecer um cabeçalho de Autorização em cada solicitação feita, seguindo o formato:
X-Authorization: Bearer xxxxxxxxxx
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
- Descubra como dar os primeiros passos com a API v2 da Huggy.
- Veja como exportar os seus contatos para uma planilha via API.
Agentes
GET/agents
Visualizar todos os agentes
Obtém a lista de todos os agentes da company.
200
Response[
{
"id": 12162,
"name": "John Doe"
},
{
"id": 11839,
"name": "Nicolas Tesla"
},
{
"id": 11433,
"name": "Linus Torvalds"
},
{
"id": 11432,
"name": "Dennis Ritchie"
}
]
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
.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do agente |
Exemplo: Identificador do agente
200
Response{
"id": "34146",
"name": "John Doe",
"email": "john@doe.com",
"login": "johndoe",
"type": 3,
"phone": "551199999999"
}
2
3
4
5
6
7
8
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
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.
Parameter | Type | Description | |
---|---|---|---|
id | integer | E-mail do novo agente | |
id | integer | E-mail do novo agente |
Exemplo: E-mail do novo agente
Exemplo: E-mail do novo agente
Request example
{
"email": "john@doe.com",
"type": 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:
Definition | Type | Key | Value |
---|---|---|---|
Agent | integer | Type | 1 |
Gerente | integer | Type | 2 |
Administrador | integer | Type | 3 |
Exemplo: Type
1
Exemplo: Type
2
Exemplo: Type
3
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
500
Response{
"reason": "Agente já conectado"
}
2
3
PUT/agents/{id}
Atualizar um agente
Atualiza os dados de um agente.
Note: O campo password deve conter pelo menos oito caracteres.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do agente |
Exemplo: Identificador do agente
Body parameters
Parameter | Type | Description | |
---|---|---|---|
name | string | Nome do agente | |
login | string | Login do agente | |
string | Endereço de e-mail do agente | optional | |
password | string | Senha do agente | optional |
type | integer | Definição de escopo do agente | optional |
phone | string | Número de telefone do agente | optional |
active | boolean | Definição de atividade do agente na plataforma | optional |
Exemplo: Nome do agente
Exemplo: Login do agente
Exemplo: Endereço de e-mail do agente
optional
Exemplo: Senha do agente
optional
Exemplo: Definição de escopo do agente
optional
Exemplo: Número de telefone do agente
optional
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
}
2
3
4
5
6
7
8
9
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
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.
200
Response[
{
"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"
}
}
]
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
.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do contato |
Exemplo: Identificador do contato
200
Response{
"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
}
}
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
Parameter | Type | Description | |
---|---|---|---|
name | string | Nome do contato | |
phone | string | Telefone do contato | |
string | E-mail do contato |
Exemplo: Nome do contato
Exemplo: Telefone do contato
Exemplo: E-mail do contato
Request example
{
"name": "John Doe",
"phone": "5575999999999",
"email": "john@doe.com"
}
2
3
4
5
201
Response[
{
"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": []
}
]
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
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
2
3
PUT/contacts/{id}
Atualizar um contato
Atualiza um contato através do seu ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do contato |
Exemplo: Identificador do contato
Body parameters
Parameter | Type | Description | |
---|---|---|---|
name | string | Nome do contato | |
name | string | Nome do contato | |
string | E-mail do contato | ||
phone | string | Telefone do contato | opcional |
mobile | string | Celular do contato | opcional |
address | string | Endereço do contato | opcional |
city | string | Cidade do contato | opcional |
district | string | Distrito do contato | opcional |
state | string | Estado do contato | opcional |
obs | string | Comentários, observações | opcional |
Exemplo: Nome do contato
Exemplo: Nome do contato
Exemplo: E-mail do contato
Exemplo: Telefone do contato
opcional
Exemplo: Celular do contato
opcional
Exemplo: Endereço do contato
opcional
Exemplo: Cidade do contato
opcional
Exemplo: Distrito do contato
opcional
Exemplo: Estado do contato
opcional
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"
}
2
3
4
5
6
7
8
9
10
11
204
ResponseRequisição bem sucedida com o body vazio
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
2
3
DELETE/contacts/{id}
Excluir um contato
Exclui um contato através do seu ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do contato |
Exemplo: Identificador do contato
Request example
{
}
2
3
204
ResponseRequisição bem sucedida com o body vazio
Chats
GET/chats
Visualizar todos os chats
Obtém a lista de todos os chats.
200
Response[
{
"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
}
]
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
.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do chat |
Exemplo: Identificador do chat
200
Response{
"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"
}
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.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do chat |
Exemplo: Identificador do chat
200
Response[
{
"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
}
]
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
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
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.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do chat |
Exemplo: Identificador do chat
200
Response{
"score": "5",
"text": "Ficamos muito contentes com o atendimento"
}
2
3
4
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
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.
Parameter | Type | Description | |
---|---|---|---|
name | string | Nome do contato | |
phone | string | Telefone do contato | |
string | Endereço de e-mail do contato | ||
channelID | integer | Identificador do canal | optional |
message | string | Mensagem enviada na abertura do atendimento | optional |
department | integer | Identificador do departamento | optional |
subject | string | Assunto da mensagem | optional |
isInternal | boolean | Informa se a mensagem é interna | optional |
Exemplo: Nome do contato
Exemplo: Telefone do contato
Exemplo: Endereço de e-mail do contato
Exemplo: Identificador do canal
optional
Exemplo: Mensagem enviada na abertura do atendimento
optional
Exemplo: Identificador do departamento
optional
Exemplo: Assunto da mensagem
optional
Exemplo: Informa se a mensagem é interna
optional
Request example
{
"name": "John Doe",
"phone": "551199999999",
"email": "john@doe.com",
"message": "Hello, John!"
}
2
3
4
5
6
201
Response{
"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
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
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
comotrue
quando quiser que o usuário avalie o atendimento.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do chat |
Exemplo: Identificador do chat
Request example
{
"sendFeedback": true
}
2
3
201
ResponseRequisição bem sucedida com o body vazio
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
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.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do chat |
Exemplo: Identificador do chat
201
ResponseRequisição bem sucedida com o body vazio
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
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.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do chat |
Exemplo: Identificador do chat
Body parameters
Parameter | Type | Description | |
---|---|---|---|
text | string | Mensagem de texto enviada ao chat | |
isInternal | boolean | Informa se o chat é interno |
Exemplo: Mensagem de texto enviada ao chat
Exemplo: Informa se o chat é interno
Request example
{
"text": "Olá John!",
"isInternal": false
}
2
3
4
201
ResponseRequisição bem sucedida com o body vazio
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
2
3
POST/chats/{id}/reopen
Reabrir um chat
Faz a reabertura de um chat, passando seu ID
como parâmetro na requisição.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do chat |
Identificador do chat
201
ResponseRequisição bem sucedida com o body vazio
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca."
}
2
3
POST /chats/{id}/situation
Alterar a situação do chat
Altera a situação do chat a partir do ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do chat |
Exemplo: Identificador do chat
Body parameters
Parameter | Type | Description |
---|---|---|
auto | string | Chat em distribuição automática |
wait_for_chat | string | Aguardando atendimento |
in_chat | string | Em atendimento |
blocked | string | Chat bloqueado para atendimento |
Exemplo: Chat em distribuição automática
Exemplo: Aguardando atendimento
Exemplo: Em atendimento
Exemplo: Chat bloqueado para atendimento
Request example
{
"situation": "wait_for_chat"
}
2
3
201
ResponseRequisição bem sucedida com o body vazio
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
2
3
POST/chats/{id}/tags
Definir tags
Nota: Para a definição de mais de uma tag, separe-as por vírgula.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do chat |
Exemplo: Identificador do chat
Body parameters
Parameter | Type | Description | |
---|---|---|---|
tags | string | Tags que representam o assunto de uma determinada interação |
Exemplo: Tags que representam o assunto de uma determinada interação
Request example
{
"tags" : "tag1, tag2"
}
2
3
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
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.
Parameter | Type | Description |
---|---|---|
id | integer | Identificador do chat |
Exemplo: Identificador do chat
Body parameters
Parameter | Type | Description |
---|---|---|
flowId | integer | Identificador do flow |
Exemplo: Identificador do flow
Request example
{
"flowId" : 142714
}
2
3
200
ResponseRequisição bem sucedida com o body vazio
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
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"
}
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.
Parameter | Type | Description |
---|---|---|
flowId | integer | Identificador do flow |
contactId | integer | Identificador do contato |
Exemplo: Identificador do flow
Exemplo: Identificador do contato
Request example
{
"uuid": "",
"variables": {
"data": "15/10/2019",
"url_event": "https://huggy.io"
},
"whenInChat": true,
"whenWaitForChat": true,
"whenInAuto": true
}
2
3
4
5
6
7
8
9
10
200
Response{
"reason": "Flow processed",
"chatID": 19291350
}
2
3
4
200
Response{
"reason": "Flow processed and agent removed from chat",
"chatID": 19291350
}
2
3
4
400
Response{
"reason": "Esta mensagem informará o que ocasionou o erro"
}
2
3
404
Response{
"reason": "Esta mensagem mostrará que não existe resultado para sua busca"
}
2
3