# API v3
Welcome to the Huggy API. With it, you can manage all agents, contacts and serve your customers, send and receive messages. This API allows you to programmatically perform actions on your company account.
Our API natively supports the format:
REST
The system should make a request for the URL https://api.huggy.app/v3, sending the parameters by GET, POST, PUT or DELETE. For each request, the response will be a JSON object, which is detailed throughout this documentation.
# Authentication
# Authentication through Huggy Panel
For the API activation, you must have to activate the default company app in Developers section in Huggy platform and do the authentication through a authorization structure for get the API, OAuth2.0
(opens new window). The Authentication through Huggy Panel the app activation gives automatic access for the oauth credentials, that are a client_id and a client_secret, that will be used to extract your account token.
# App sections
# Basic Informations
In this section, you can put a
Name
and a Description
for the app, both can be updated at any time.
# OAuth 2.0 Authentication
In this section you can set up a callback URL. You also can view the client_id
and the client_secret
, that was generated automatically when you created the app in Huggy platform.
# Redirect URL
callback url
- Consists in a url that the Huggy platform will return to your app the requested authorization.
# OAuth credentials
client_id
- It’s the way that the Huggy API will be identify your app.
client_secret
- It’s known and used only by the app and the authorization server.
- It’s known and used only by the app and the authorization server.
# Authentication Steps
# Steps 1:
- Create an app in Huggy platform
Huggy
(opens new window)
# Steps 2:
- Override the parameters
redirect_uri
andclient_id
in the url below.https://auth.huggy.app/oauth/authorize?scope=install_app%20read_agent_profile&response_type=code&redirect_uri={url_de_callback}&client_id={client_id}
1- scope: It's the API scope access (resources);
- response_type: It’s the expected answer. The code sent for the callback url;
- redirect_uri: It’s the callback url configured in the app;
- client_id: It’s the app’s id;
# Steps 3:
- Logged in Huggy platform, you have to access the informed uri with the described information on the previous step. If all steps are completed, so the authorization interface will be shown.
# Steps 4:
- Grant app usage permission
# Steps 5:
- After clicking in “Authorize”, we will send the code to the callback url.
https://nomedoapp.org/auth/callback?code=def50200a66869346ba8d24820a1ed96e267d3518a65d27efe179ab73f1c8e50a0ba7f860b763534eaeec5c895ca7efaf49aa7b5160ab33545c18c59d8672e9d0ae8f98a0b81aaae9b741c8536839dbbb4d2864d08f11d5faeea10bec7a4eba32b3e07c343e6031c280f73d97d1dfd92ec0bfe3a84e6ffb62d18991b21c5825c1ef4c4e2dd0c92550d70aa11184b6f1e7004c09f54826ca47cf42c1065efd0e680e8857909d64e991258e41981858d08bc5e9e70866ec7ab67e500a7af3d84835cbc7a6ca33fc38e782050b62e5af3b280368315bf3dd3c234bffa986426a6eed2efa922e932d9579721e6dc1c3a5e74d949773a3eaaaa596be289d129cb81b62690ba32166b2d54c0725ad510g99f7df41c9edc701e1d60ffed375319dee886287030e6d3f4d0983b4211a4b74d82ff3349f5027eee16bca259e4b5ba88123a4e68e5ce4fad77e3ecd558036271bw566ebe4b5cc0baa1e05bb6c0c5a1d0420ab2bcc3e96396b9b58dc63a345732dcc8246dba3ac5c687eb6981882d37fc84e2e9bc88e8a88f795b6cb7f2dc89d97c0c31b37d207c3b45571e2bc39afb412929485f7a84f485daaae4a7
Note: The code that was sent to the callback url must be used only once. If you need to generate the access_token again, all the steps, starting with step 2, needs to be repeated.
# Steps 6:
- To extract the
access_token
and therefresh_token
, you have to send a request with the following parameters:
# Practical solution
Check out a practical solution (opens new window) that allows you to perform the authentication process using a customized and intuitive interface.
# Request parameters
Parameter | Type | Example | Description |
---|---|---|---|
grant_type | string | authorization_code | It’s informs to the token terminal that the app is using the OAuth Authorization Code |
redirect_uri | string | https://appname.org/auth/callback | Callback url used to receive the token |
client_id | string | APP-bafb4727-c1fe-47af-8cd7-9f43c1a87767 | Client app’s id |
client_secret | string | 52f9fc0d-daa5-4238-bg36-2rb63db54eeb | It’s known and used only by the app and the authorization server |
code | string | def50200fb4b3a43e7647589... | Code sent to callback url. Ensures client authenticity and token access control |
Exemplo: authorization_code
It’s informs to the token terminal that the app is using the OAuth Authorization Code
Exemplo: https://appname.org/auth/callback
Callback url used to receive the token
Exemplo: APP-bafb4727-c1fe-47af-8cd7-9f43c1a87767
Client app’s id
Exemplo: 52f9fc0d-daa5-4238-bg36-2rb63db54eeb
It’s known and used only by the app and the authorization server
Exemplo: def50200fb4b3a43e7647589...
Code sent to callback url. Ensures client authenticity and token access control
# Request Example
{
"grant_type": "authorization_code",
"redirect_uri": "https://appname.org/auth/callback",
"client_id": "APP-bafb4727-c1fe-47af-8cd7-9f43c1a87767",
"client_secret": "52f9fc0d-daa5-4238-bg36-2rb63db54eeb",
"code": "def50200fb4b3a43e7b4d2513ae2db4c14a444cbded99f2fbb29e6f0d3d10bfad6c452548252c01ee4060c2ac6c689dab0d8f37664e682d6e275d5c065dad88c219d2bff4d872f2df440736f0919d1420ad05cecd588749a6a375b51790f706fe16e1685100f433d7fbbe464296dd491f0b767e5c934723162fb58aa22f835a2ed37ca60f8dfec57fce7a4bd5d98e3526610796d4b868586f3672636a53b7df771e9c528c51a11a582c5518f72267f94747b7b9bca367add990847dd0d6a07f97f3377c0f80f97736fffde33fb9124524a81c0d27c6877ac6d03b0d00b46f5758c6ba35baadba3766d01cfac5bb0213dc5115cde5645c9a8f0f385893061ff8247c0d222d7f5941795b8332e17b06c0f34c2744056718954eb3d63a60bc5836909c3b314a8ad8ca16d481b126a1971c552153b25aba5087385a3c42c1b60297ba7d86cd81ceab72bb05fe0f5cb767ceb229a7d239c2c2ae8cda7513b6f7230c2ffbc17a82f53297348399ef29527a2a3b138a1da64eae320e0eedb56e11f9c894f057cfd68fc5b0015b8493bd988a810c7b91836e9539df92398bb0c4de66b749747f09f2240a3d24e27"
}
2
3
4
5
6
7
# Response parameters 200
{
"token_type": "Bearer",
"expires_in": 2592000,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImY4ODUxODBhZGU4N2Q0MGE1NmNkNWE4ODE3YzU0YWIyZDliZDg0NmVlODdkYTIzYTg3YThlNjQyZWY4NjczOGQ5Nzg5NDA2ZjU0NmYyYWVhIn0.eyJhdWQiOiJBUFAtZGFmYjQ3MjctYTFmZS00NmFmLTljZDctNmQ0M2MxYTg3NzY3IiwianRpIjoiZjg4NTE4MGFkZTg3ZDQwYTU2Y2Q1YTg3MTdjNTRhYjJkOWJkODQ2ZWU4N2RhMjNhODdhOGU2mDJlZjg2NzM4ZDk3ODk0MDZmNTQ2ZjJhZWEiLCJpYXQiOjE1NzQ4NTk2OTEsIm5iZiI6MTU3NDg1OTY5MSwiZXhwIjoxNTc3NDUxNjkxLCJzdWIiOiIzNDE0NiIsInNjb3BlcyI6WyJpbnN0YWxsX2FwcCIsInJlYWRfYWdlbnRfcHJvZmlsZSJdfQ.WXSsIOigtQh3GEGoGvfogcNiee6y1ElkvXCdOxJSOQr5LXJU-mZR2gCsBLh_XKXtvuj-9MSKHSq10HgsKacLrmJGryaeBvo1m9Ro9GUrTeNPY2cKOtjaCcxTgjRbTUvWQlNOhPMfxNSQ8-2L5-hKwrhxtjbFPghrtF1ifqRj_w0",
"refresh_token": "def5430200ce65d9ae52cbd8e89191c731d15e6836bda7e6ad80a1ffe7f5bbbe971bae5cef6b881054ea003e55cf9d2cefd8218902ad0822bb137a561f7d1d72bada321e607b8acd396b618c933b2aeb4ae0971b7a12e116050f2583b0bf1d6f3bf90635d1fb2f417756b1963c9a55414a9d3cc63374a9683e07b4d07da1299a2c3ccdb6c1s91040ef6279afd7bc1e4b70f070272dcf7cd39c7f2508b2ffdf5f58101f8fc552ae828f372253d67973a2357560944cff5d5c020f1d5da1fdc045d6e5acc8856571635ac0aca0217bc069b9cb4718219f6acd33c77f1b8a4ddcf1742ba122e879054d096a198aab985d2144949444cc078a5d09fa372e91bcb1568c8b0977ad94614223d04f60b6dc245d2e28922ffdcf8284d1a4dde1874b3715bd92019cdb019dec3ef4f6a2d745c6948aebb271e90ed94d1cfce6d6fda526c52175453cabcbc096cf818bd5a32356007c8c40f93fc4694fcbeb51431dc0dbe2e4b05e8a479101fdb457a4a2e29d076701be5a640d6115e43cd261b52f8939ead61d4a11f2f3dab615dbf09e319619833a287f6de6f75f9dc08385af43689fc41b04f92825f2cb0fddb0289e19980"
}
2
3
4
5
6
Note: The access_token has a six months expiration date.
# Update token.
If your token has expired, the update can be done by the access_token
and the refresh_token
, as demonstrated:
# Header
Parameter | Type | Description |
---|---|---|
access_token | string | Expired token |
Expired token
# Body parameters
Parameter | Type | Exemplo | Description |
---|---|---|---|
grant_type | string | refresh_token | This will inform the token terminal that the application is using the granttype to update an expired Token |
client_id | string | APP-bafb4727-c1fe-47af-8cd7-9f43c1a87767 | Client apllication ID |
client_secret | string | 52f9fc0d-daa5-4238-bg36-2rb63db54eeb | Known and used only by the application and the authorization server |
refresh_token | string | def50200fb4b3a43e7647589... | Update code for an expired token |
Exemplo: refresh_token
This will inform the token terminal that the application is using the grant_type to update an expired Token
Exemplo: APP-bafb4727-c1fe-47af-8cd7-9f43c1a87767
Client apllication ID
Exemplo: 52f9fc0d-daa5-4238-bg36-2rb63db54eeb
Known and used only by the application and the authorization server
Exemplo: def50200fb4b3a43e7647589...
Update code for an expired token
# Request example
{
"grant_type": "refresh_token",
"client_id": "APP-2d6ea240-4c53-46e2-85c9-e3ced06e1c5d",
"client_secret": "6c9daa24-ebf3-4f7f-90as-8ca086fae8e8",
"refresh_token": "def50200408af6f3ed19ae9ab90ae2190ae199980dc1487eba8c30043bd7f7275b4beef4eca314ceca7368b7f52519139e9ad6cb5bd69383401fa8c6497559c0797ea4dd46dc0fb794fdefff479d8cce768208dfbdd93692939d6c44a8e6704b816babcd20796759c8bda4047cad7d1de5ba8a2e70742ff86e87963bd58caebc683f8c2d845a20be5b03273ff28819538af334995e5744163b9778404090b228cee51bf27c916eaecfd9c9aedf2bc7bfd8b9f8322b978cc5c18f6437bae1b4439db249609326960db6ef0dc7f4c57098d77d7f46ad95f274442e01a4eca126651efeca03af33c6e6c9c16dbd635867fb66564bede35fb7a4e750234bbbd4b13c450c19cc2d844cc6cee4c20177f4ad6bd159cc1eb2cc6dec0065bd8f324cbb19193e9344d4c1e75833ae2a8b0ba8c64cf46e1bc502a800b120dec82f9522f3667dcd1b9b0dfba5bed2c5e8e4fa6697e959d09b95f93b8347ee1e11b9b2d083a34e3a9d4bb3fda40e6f2e14edb3fc9f32215242f6d91e6197855fec8037237371e0b6ba5168563570e15223c52fbe887263676e98e9045e34b677a9b2fab191f23c6ecc28c210f5f4fcc741d1ceb"
}
2
3
4
5
6
# Response parameters 200
{
"token_type": "Bearer",
"expires_in": 2505600,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGdiOiJSUPI1NiIsImp0aSI6ImNmZGQwMThmOTMzYTA2ZDIyNDY2NzUzMzk2ODk2MjRkYjAwNTRhMDg4MzlkODk3ZDQ5MjJlMDk3MTP4MTY0MThkNzQ3Y2YxYTQyNmQzNmNmIn0.eyJhdWQiOiJBUFAtNGQ2ZWEyNTAiQGM1My00NmUxLTg1YzstZTNjZWQwNmUyYzVkIiwianRpIjoiY2ZkZDAxOGY5MzNhMDZkMjI0NjY3NTMzOTY4OTYyNGRiMAA1NGEwODgzOWQ4OTdkNDkyMmUwOTcxMDgxNjQxOGQ3NDdjZjFhNDI2ZDM2Y2YiLCJpYXQiOjE1ODEzNDU0NjYsIm5iZiQ6MTU4MTM0NTQ2NiwiZXhwIjoxNTgzODUxMDY2LCJzdWIiOiIzNDE0NiIsInNjb3BlcyI6WyJpbnN0YWxsX2FwcCIsInJEYWRfYWdlbnRfcHJvZmlsSSJdfQ.VL5fgtj4ioZOvvh9QDBD9Uk-DwtezOKfCNTOC0wFDxYIH_3s_l6sZmyAAPAm4yB-XSZMNXeItqeC-JSICt1pSPbf74Dn9i5Nyn_Evi2Owt4V9I_efuLNSCC6XM8u59l5LUfkt5ICTBRDBnkK2ux6zuYsUzCYjMS8U3qW_Z6g0SE",
"refresh_token": "def5020048b980d8104a5f09caaa3ba7eec0acfd84cb026a48623b1b61146d4a175d92c4fbea51d3d2143a2ed2c7b7b7be85c8a4b2a6de1154ecbfe44a3814fce8e7c59c578f38112eebb1c218c0c6e088bef56950ef0d940cc45abad9128deeb1fb2f4fd2ba0b4sd018509da99f43ff4d355ab542503382cd827b6948922ffb1216b349e93eb2d2ecce9bb567bf4960e336776af882824f1d4791ad38da2b1a92c32ca50afceee3b9283a474cb1ed932359f4c77d7908fbd13e275b66f913784f2a155ae0593d119dcfda0dcc44d7fa2240ac15817cb95c1303d8d36f1a39602f1162d87e749b0f8a188c9b21314737a7cada2d51299e5d27f9ee95f250b35e20de728711cebd6bde748246629ea40f8402a7586ba54db349f61a42e7cea417617ff0d7fda0deb1c6f9afcd2bae45d526518cd7f52e62a22ba0530e3afd50b0d8896653d2c0bf0b2d525e200613f5b45bd432s6e4cdcefa5730b7d570641fe3e46f3f0705361737684000fc337880cae515983b0d718046c99c7348be65c9a478cf1d7a0de0f05f9f9baac79e0f5b9a7aa7f66a0272705dead82d475ac2ea687453f26d46bb771b9cb19ca36ecc"
}
2
3
4
5
6
Note: The updated Token has a validity period of 1 year.
# Headers
All requests must also include the following headers:
- Content-Type: application/json
- Accept: application/json
- Authorization: Bearer xxxxxxx
# Language
By default, when not informed the Accept-Language
, all requests will be answered in english. For get the response at a preferred language, in the header of your request, enter:
- Accept-Language: en
- Accept-Language: pt-br
- Accept-Language: es
# Request
By default, all calls in API define that the request is being made directly at the main company. That is: the first company an agent was linked to.
If a request are being made at a secondary company, it must assume the URI model https://api.huggy.app/v3/companies/{companyID}/resource...
# Response
Some requests successful can be answered with a status 200 or 204 without a body returning, such as requests that are using POST and DELETE methods.
# Pagination
The request parameter is available to all endpoint that list a resource content being accessed.
This list is limited to 20 results and the remaining resource, if exists, can be accessed with a search parameter ?page=1
in one request url. This page start in 0
(first page). If the requested page does not exist, a empty list []
will be returned in the request body.
# Usual server responses:
- 200 OK - The request was successful.
- 201 Created - The request was successful and a resource was created.
- 204 Modified - The request was successful and a resource was modified.
- 400 Bad Request - The request could not be understood or was missing required parameters. Check the reason in the body response.
- 401 Unauthorized - Authentication failed or user doesn't have permissions for requested operation. Check the API token, he may be wrong.
- 403 Forbidden - The customer doesn’t have permission to content, the server is reserved to don’t give more answers. Different from code 401, the customer identity is known.
- 404 Not Found - Resource was not found. This could be caused by a non existent ID.
- 423 Locked - The resource being accessed is blocked, not being possible, at the time, to interact with it.
- 501 Request Failed - May be caused by wrong method of request.
# Chats
# GET/chats
# View all chats
This endpoint has some optional parameters to get the data from a chat according to your situation. For this type of request, pass the following attributes followed by the value you want to filter as a parameter in the URL. Example:
Parameter | Type | Description |
---|---|---|
agent | integer | Agent ID |
department | integer | Department ID |
customer | integer | Customer ID |
situation | string | View Values |
status | string | View values |
Agent ID
Department ID
Customer ID
View Values
View values
# Filter of chats by channels
The Chats can be filtered by channels with the channel
parameter.
The Channels can be:
- telegram-bot
- messenger
# Response 200
[
{
"id": 1488,
"agentId": null,
"secondAgentId": null,
"contactId": 24,
"departmentId": null,
"tabulationId": 17044,
"chatTabulation": {
"id": "17044",
"name": "Opa"
},
"lastMessage": {
"text": "Sessão ativa.",
"file": null,
"sendAt": "2020-05-30 13:03:00",
"senderType": "1",
"sender": {
"id": "1",
"name": "Auto",
"mobile": null,
"phone": null,
"email": null,
"photo": "https://cdn.pzw.io/416934ac2aa73059a78594e63c0a03ae.jpg"
}
},
"chatDepartment": null,
"unread": 3,
"channels": [
{
"uuid": "a5dd1655-5cb8-4905-99c6-d77f8ec3570c",
"id": "a5dd1655-5cb8-4905-99c6-d77f8ec3570c",
"name": "MB Sandbox",
"type": "Whatsapp-Enterprise"
}
],
"chatCustomer": {
"id": 24,
"name": "Nicolas Tesla",
"mobile": "557599999999",
"phone": null,
"email": "",
"photo": "https://cdn.pzw.io/af33e7b1321c8eeae152f57635142bba.jpg",
"custom_fields": {
"apelido_customer": "teste",
"empresa_customer": null
}
},
"queueNumber": null,
"situation": "auto",
"createdAt": "2020-05-30 13:02:58",
"updatedAt": "2020-05-30 13:03:02",
"attendedAt": null,
"closedAt": null,
"state": "without_answer",
"channel": "whatsapp-enterprise",
"agents": []
},
{
"id": 1487,
"agentId": 21564,
"secondAgentId": null,
"contactId": 24,
"departmentId": null,
"tabulationId": 17044,
"chatTabulation": {
"id": "17044",
"name": "Opa"
},
"lastMessage": {
"text": "Você possui um atendimento finalizado recentemente. Deseja reabri-lo? Digite o número da opção desejada\n\n1 - Reabrir atendimento\n2 - Novo atendimento",
"file": null,
"sendAt": "2020-05-30 13:02:33",
"senderType": "1",
"sender": {
"id": "1",
"name": "Auto",
"mobile": null,
"phone": null,
"email": null,
"photo": "https://cdn.pzw.io/416934ac2aa73059a78594e64c0a03ae.jpg"
}
},
"chatDepartment": null,
"unread": 0,
"channels": [
{
"uuid": "a5dd1655-5cc8-4905-99c6-d77f8ec3570c",
"id": "a5dd1655-5cb8-4805-99c6-d77f8ec3570c",
"name": "MB Sandbox",
"type": "Whatsapp-Enterprise"
}
],
"chatCustomer": {
"id": 24,
"name": "John Doe",
"mobile": "557583158424",
"phone": null,
"email": "john@teste.com",
"photo": "https://cdn.pzw.io/af33e7b1521c8eeae152f57635142bba.jpg",
"custom_fields": {
"apelido_customer": "Ç",
"empresa_customer": null
}
},
"queueNumber": null,
"situation": "finishing",
"createdAt": "2020-05-30 13:01:58",
"updatedAt": "2020-05-30 13:02:33",
"attendedAt": "2020-05-30 13:02:19",
"closedAt": "2020-05-30 13:02:22",
"state": "without_answer",
"channel": "whatsapp-enterprise",
"agents": [
{
"id": 21564,
"name": "John Doe",
"mobile": "557599999999",
"phone": "557599999999",
"email": "john@doe.com",
"photo": "https://cdn.pzw.io/474393db01f9171f6bf15042e8f587.jpg",
"isActive": true,
"isOnline": true,
"isAvailable": false,
"photo_url": "https://cdn.pzw.io/4743932db30f9171f6bf15042e8f87.jpg"
}
]
}
]
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# GET/chats/{id}
# View chat details
Get the detailed data of a chat by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Response 200
{
"id": 1488,
"agentId": null,
"secondAgentId": null,
"contactId": 24,
"departmentId": null,
"tabulationId": 17044,
"chatTabulation": {
"id": "17044",
"name": "Opa"
},
"lastMessage": {
"text": "Sessão ativa.",
"file": null,
"sendAt": "2020-05-30 13:03:00",
"senderType": "1",
"sender": {
"id": "1",
"name": "Auto",
"mobile": null,
"phone": null,
"email": null,
"photo": "https://cdn.pzw.io/416934ac2aa73059a78594e63c0a03ae.jpg"
}
},
"chatDepartment": null,
"unread": 3,
"channels": [
{
"uuid": "a5dd1655-5cb8-4905-99c6-d77f8ec3570c",
"id": "a5dd1655-5cb8-4905-99c6-d77f8ec3570c",
"name": "MB Sandbox",
"type": "Whatsapp-Enterprise"
}
],
"chatCustomer": {
"id": 24,
"name": "Nicolas Tesla",
"mobile": "557599999999",
"phone": null,
"email": "",
"photo": "https://cdn.pzw.io/af33e7b1321c8eeae152f57635142bba.jpg",
"custom_fields": {
"apelido_customer": "teste",
"empresa_customer": null
}
},
"queueNumber": null,
"situation": "auto",
"createdAt": "2020-05-30 13:02:58",
"updatedAt": "2020-05-30 13:03:02",
"attendedAt": null,
"closedAt": null,
"state": "without_answer",
"channel": "whatsapp-enterprise",
"agents": []
},
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
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# GET/chats/{id}/messages
# View chats message
Get the detailed data of a chat by its ID
.
This request will return the corresponding chat messages. Therefore, it can return one or more message.
Parameter | Type | Description | |
---|---|---|---|
id | integer | Chat ID | |
showEvents | boolean | Displays the chat's internal event messages | optional |
Chat ID
Displays the chat's internal event messages
Note: By default, internal chat event messages are not displayed. To show these messages, use the filter mentioned above in the request:
chats/{id}/messages?showEvents=true
# Response 200
[
{
"id": 270954690,
"text": "https://cdn.pzw.io/1ec9d63c92527f8c794093c78e86561f1a.png",
"isInternal": false,
"isEmail": false,
"sender": {
"id": 33980,
"name": "John Doe",
"mobile": "557576767676",
"phone": "557576767676",
"email": "teste@abc.com",
"photo": "https://cdn.pzw.io/b4cae08a6373897658bb99b076bdb9257fd.jpg"
},
"senderType": "agent",
"receiver": {
"id": 1841996,
"name": "John",
"mobile": "999999999",
"phone": "33333333",
"email": "john@doe.com",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg"
},
"receiverType": "widget",
"file": null,
"chat": {
"id": 13122329,
"channel": "widget",
"situation": "in_chat",
"department": false,
"customer": {
"id": 1841996,
"name": "John",
"mobile": "999999999",
"phone": "33333333",
"email": "john@doe.com",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg"
}
},
"sendAt": "2019-10-01 10:43:20",
"readAt": null,
"type": "text"
}
]
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
messages.type
type
- Used to represent the type of message returned in a payload.
Value | Description |
---|---|
text | Represents a text message |
image | Represents a link to an image |
audio | Represents an audio message |
video | Represents a link to an video |
document | Represents a document sent by chat |
Represents an e-mail address | |
sms | Represents a sms |
internalEvent | Represents the occurrence of the internal event. For example, Agent Y defined department X |
templateMessage | Represents a template message when it is sent in chat |
Represents a text message
Represents a link to an image
Represents an audio message
Represents a link to an video
Represents a document sent by chat
Represents an e-mail address
Represents a sms
Represents the occurrence of the internal event. For example, Agent Y defined department X
Represents a template message when it is sent in chat
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# GET/chats/{id}/tags
# View all tags of a chat
View the list of tags added to a chat.
Note: Tags are utilized for sintetize the context of an attendance, so we can map it.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Response 200
[
{
"id": "304430",
"name": "restriction"
},
{
"id": "304431",
"name": "blocked"
}
]
2
3
4
5
6
7
8
9
10
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# GET/chats/{id}/agents
# View ID of an agent
Get the name
and ID
of an agent by the chat identifier.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Response 200
[
{
"name": "Charles",
"id": 39704
}
]
2
3
4
5
6
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# GET/chats/{id}/contextVariables
# Get context variables
Gets the chat context variables.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Response 200
{
"id": 212592,
"customerId": 187702,
"contextVariables": {
"huggy.time_hello": "Hello",
"huggy.chat.agent.name": null,
"huggy.chat.company.id": 1,
"huggy.chat.channel.type": "Whatsapp-Enterprise",
"huggy.chat.company.created_at": "2015-09-08 17:30:53"
}
}
2
3
4
5
6
7
8
9
10
11
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# POST/chats/{id}/messages
# Add a new message in a chat
Add a new message passing key
and value
in the request body.
To send a button message, see the particularities of each channel.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Body parameters
Parameter | Type | Description | |
---|---|---|---|
text | string | Message sent to a contact | |
fileBase64 | string | String containing a file encoded in Base64 | optional |
file | string | URL sent to a contact containing a file | optional |
option | array | Array containing button option id and title | optional |
isInternal | boolean | Inform if a message is internal | optional |
Message sent to a contact
String containing a file encoded in Base64
URL sent to a contact containing a file
Array containing button option id and title
Inform if a message is internal
# Request example
{
"text": "Hello, John!",
"fileBase64": "JVBERi0xLjQNJeLjz9MNCjYgMCBvYmoNPDwvTGluZWFyaXplZCAxL0wgMTA1MjcvTyA4L0UgNjM5M...",
"file": "https://c.pzw.io/img/avatar-user-boy.jpg",
"isInternal": false
}
2
3
4
5
6
# Allowed file types
- image/jpg
- image/png
- image/gif
- image/bmp
- audio/mp4
- audio/mp3
- audio/wav
- application/pdf
- application/doc
- application/txt
# Response 200
{
"id": 270959650,
"text": "Hello, John!",
"isInternal": false,
"isEmail": false,
"sender": {
"id": 33980,
"name": "John Doe",
"mobile": "557599999999",
"phone": "557533333333",
"email": "john@doe.com",
"photo": "https://cdn.pzw.io/b4cae08a6473895bc99b076bdb9257fd.jpg"
},
"senderType": "agent",
"receiver": {
"id": 1842023,
"name": "John Doe",
"mobile": null,
"phone": null,
"email": null,
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg"
},
"receiverType": "widget",
"file": "https://c.pzw.io/img/avatar-user-boy.jpg",
"chat": {
"id": 13122720,
"channel": "widget",
"situation": "in_chat",
"department": false,
"customer": {
"id": 1842023,
"name": "John Doe",
"mobile": null,
"phone": null,
"email": null,
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg"
}
},
"sendAt": "2019-10-16 17:44:15",
"readAt": null,
"type": "image"
}
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
# Sending buttons
# Particularities of channels
Channel | Buttons | Message sending | |
---|---|---|---|
Huggy WhatsApp | yes | Use Quick Reply up to 3 items | If greater than 3 and up to 10 use interactive list | If greater than 10 use text | |
Messenger | yes | Use Quick Reply up to 13 items | If greater than 13 use text | |
yes | Use Quick Reply up to 13 items | If greater than 13 use text | ||
TelegramBot | yes | Use Quick Reply up to 1000 items |
Use `Quick Reply` up to 3 items | If greater than 3 and up to 10 use `interactive list` | If greater than 10 use `text`
Use `Quick Reply` up to 13 items | If greater than 13 use `text`
Use `Quick Reply` up to 13 items | If greater than 13 use `text`
Use `Quick Reply` up to 1000 items
Note: Sending messages with buttons is
unavailable
in the Email, VoIP and Internal Chat channels.
# Request example for sending buttons
{
"text": "Which option do you want?",
"options": [
{
"id": 1,
"title": "Option 1"
},
{
"id": 2,
"title": "option 2"
},
{
"id": 3,
"title": "option 3"
}
],
"isInternal": false
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Response 201
{
"id": 1266041,
"text": "Which option do you want?\n \n1 - Option 1\n2 - option 2\n3 - option 3\n",
"isInternal": false,
"isEmail": false,
"sender": {
"id": 40419,
"name": "John Doe",
"mobile": null,
"phone": null,
"email": "john@doe.com",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"isActive": true,
"isOnline": true,
"isAvailable": false,
"statusID": "-1",
"statusType": 0
},
"senderType": "agent",
"receiver": {
"id": 214033,
"name": "customer",
"mobile": "5511999999999",
"phone": "551133333333",
"email": null,
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"custom_fields": {
"agente_customer": null,
"canal_principal_customer": null,
"cnpj_customer": null,
"cpf_customer": null,
"custom_cpf_customer": null,
"custom_phone_customer": null,
"custom_email_customer": null,
"date_customer": null,
"email_customer": null,
"empresa_customer": null,
"gerente_de_contas_customer": null,
"grupo_customer": null,
"hora_customer": null,
"instagram_customer": null,
"main_channel_customer": null,
"number_customer": null,
"ramo_customer": null,
"team_leader_customer": null,
"youtube_customer": null
}
},
"receiverType": "whatsapp-enterprise",
"file": null,
"chat": {
"id": 212213,
"channel": "whatsapp-enterprise",
"situation": "in_chat",
"department": false,
"customer": {
"id": 214033,
"name": "customer",
"mobile": "551199999999",
"phone": "551133333333",
"email": null,
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"custom_fields": {
"agente_customer": null,
"canal_principal_customer": null,
"cnpj_customer": null,
"cpf_customer": null,
"custom_cpf_customer": null,
"custom_phone_customer": null,
"custom_email_customer": null,
"date_customer": null,
"email_customer": null,
"empresa_customer": null,
"gerente_de_contas_customer": null,
"grupo_customer": null,
"hora_customer": null,
"instagram_customer": null,
"main_channel_customer": null,
"number_customer": null,
"ramo_customer": null,
"team_leader_customer": null,
"youtube_customer": null
}
},
"workflowID": null,
"workflowStepID": null
},
"sendAt": "2023-09-26 09:07:27",
"readAt": null,
"type": "text",
"canEnableSession": 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
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
83
84
85
86
87
88
89
90
91
92
# Sending templates
# Particularities of providers
Provider | Template Type | Type Support |
---|---|---|
Huggy WhatsApp | Marketing | Authentication | Service | Text | Button |
Other providers | Marketing | Service | Text |
Marketing | Authentication | Service
Text | Button
Marketing | Service
Text
Note: The route with sending templates using buttons will only support the Huggy WhatsApp provider. Other providers will continue to send text-only templates.
# Text-Based Message Templates
Attribute | Type | Description |
---|---|---|
template_id | integer | Template ID created on the Huggy platform |
params | Object | Object containing the variables added when creating the template message |
Template ID created on the Huggy platform
# Request example
{
"hsm": {
"template_id": 675,
"params":
{
"1": "John Doe",
"2": "Huggy"
}
}
}
2
3
4
5
6
7
8
9
10
Note: To send a template message, Huggy uses a
hsm
(Highly Structured Message) object, which contains the variable parameters added during the creation of the template message.
# Headers for message sending
Midia | Type | Property | Description |
---|---|---|---|
text | string | text | Contains text for the message |
image | Object | link | Contains the image link |
document | Object | link; filename | Contains a link to the file and name (optional) |
video | Object | link | Contains the link to the video |
# Example of a request with the sending of a template and media
{
"hsm": {
"template_id": 995,
"params":
{
"1": "John Doe",
"2": "Flow"
},
"header": {
"params": [
{
"type": "image",
"image": {
"link": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png"
}
}
]
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Note: In addition to the template variables, a header object is configured containing the header parameters, which are: a
type
property that identifies the type of media sent and an object of the same name with its specific properties. The number of parameters provided in the request must correspond to the number provided when creating the template message (opens new window).
# Example of a request with the sending of dynamic buttons
{
"hsm": {
"template_id": 988,
"header": {
"params": [
{
"type": "image",
"image": {
"link": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png"
}
}
]
},
"buttons": {
"params": [
{
"type": "text",
"text": "automation-flow"
}
]
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Note: If you configured a template message with the sending of dynamic buttons, you needed to inform during the creation of your template message the URL type as
dynamic
, such as providing the domain of the website URL, for example:https://www.huggy.io/
. Therefore, to send a request by API with a dynamic button, alternating between the Huggy solutions session, inform the remaininguri
in thetext
property of yourbuttons
object.
# Response 200
{
"id": 1300404,
"text": "Hello John Doe! This is the Flow, one of our most powerful solutions.",
"isInternal": false,
"isEmail": false,
"sender": {
"id": 40419,
"name": "Carlos Aguiar",
"mobile": null,
"phone": null,
"email": "",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"isActive": true,
"isOnline": true,
"isAvailable": false,
"statusID": "-1",
"statusType": 0
},
"senderType": "agent",
"receiver": {
"id": 215633,
"name": "John Doe",
"mobile": "5511999999999",
"phone": "551144444444",
"email": null,
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"custom_fields": {
"agente_customer": null,
"canal_principal_customer": null,
"cnpj_customer": null,
"cpf_customer": null,
"custom_cpf_customer": null,
"custom_phone_customer": null,
"custom_email_customer": null,
"date_customer": null,
"email_customer": null,
"empresa_customer": null,
"gerente_de_contas_customer": null,
"grupo_customer": null,
"hora_customer": null,
"instagram_customer": null,
"main_channel_customer": null,
"number_customer": null,
"ramo_customer": null,
"team_leader_customer": null,
"youtube_customer": null
}
},
"receiverType": "whatsapp-enterprise",
"file": "https://panel-testing-panelback-php8-cdn-origin.s3.amazonaws.com/e8111f0b44cdcbc53a7004ec38207d4f.jpeg",
"chat": {
"id": 215463,
"channel": "whatsapp-enterprise",
"situation": "in_chat",
"department": false,
"customer": {
"id": 215633,
"name": "John Doe",
"mobile": "5511999999999",
"phone": "551144444444",
"email": null,
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"custom_fields": {
"agente_customer": null,
"canal_principal_customer": null,
"cnpj_customer": null,
"cpf_customer": null,
"custom_cpf_customer": null,
"custom_phone_customer": null,
"custom_email_customer": null,
"date_customer": null,
"email_customer": null,
"empresa_customer": null,
"gerente_de_contas_customer": null,
"grupo_customer": null,
"hora_customer": null,
"instagram_customer": null,
"main_channel_customer": null,
"number_customer": null,
"ramo_customer": null,
"team_leader_customer": null,
"youtube_customer": null
}
},
"workflowID": null,
"workflowStepID": null
},
"sendAt": "2024-05-16 15:11:34",
"readAt": null,
"type": "templateMessage",
"canEnableSession": 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
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
83
84
85
86
87
88
89
90
91
92
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# POST/chats/{id}/transfer
# Transfer a chat to another agent
Transfer a chat to another agent. The expected response contains a customerID
and the chatID
that the agent has been transferred.
Note: The agent that will receive the transferred chat will see the message sent on the request on his attendance panel.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Body parametes
Parameter | Type | Description | |
---|---|---|---|
agentId | integer | Agent ID | |
message | string | Message sent to agent at time of transfer | optional |
Agent ID
Message sent to agent at time of transfer
# Request example
{
"agentId": 39607,
"message": "Hello, follow the service of our customer Emanoel"
}
2
3
4
# Response 200
{
"customerId": "7356074",
"chatId": 17656128
}
2
3
4
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# POST/chats/{id}/flow
# Execute flow
Run a Flow from a chat that is not finalized or is not internal. If the chat already has a Flow in process, it will be aborted and the execution of the new Flow will be started.
Parameter | Type | Description | |
---|---|---|---|
id | integer | Chat ID |
Exemplo: Chat ID
# Body parameters
Parameter | Type | Description | |
---|---|---|---|
flowId | integer | Flow ID | |
variables | object | Object containing variables | optional |
Exemplo: Flow ID
Exemplo: Object containing variables
optional
# Request Example
{
"flowId" : 142714,
"variables": {
"data": "15/10/2019",
"url_event": "https://huggy.io"
}
}
2
3
4
5
6
7
# Response 200
Successful request with empty body
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# PUT/chats/{id}/agent
# Add an agent
Add an agent to a chat
Note: A guest
agent
can not add other agents. If this is requested, a status400
will be returned.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Body parameters
Parâmetro | Tipo | Descrição |
---|---|---|
agentId | integer | Agent ID |
Agent ID
{
"agentId": 39607
}
2
3
# Response 200
Successful request with empty body
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# PUT/chats/{id}/read
# Mark messages as read
Mark the chat message as read. An ID
will be required for this.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Exemplo: Chat ID
# Response 200
Successful request with empty body
Resposta 403
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# PUT/chats/{id}/tabulation
This action allows you to update the tabulation of a chat. To do this, inform the tabulation ID in the request body.
Parameter | Type | Description |
---|---|---|
id | integer | chat ID |
chat ID
# Body parameter
Parameter | Type | Description |
---|---|---|
tabulationId | integer | Tabulation ID |
Tabulation ID
# Request example
{
"tabulationId" : 9740
}
2
3
# Response 200
Successful request with empty body
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# PUT/chats/{id}/tags
# Update chat tags
This action allows you to make changes to the tags
of a chat
, updating, modifying their original value.
To do this, enter in the request parameter the chat ID and in the request body the tag values.
Note: Each value will be passed to the tags key as an
array
containing the name of each of the tags separated by comma. The number of tags that can be reviewed may be greater than existing tags for chat. In this case, one or more tags will be linked to the chat in question. This is possible because a change is made in one array that may have its indexes updated or added, if more tags are passed.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Body parameters
Parameter | Type | Description |
---|---|---|
tags | string | String containing markup tags to chat |
String containing markup tags to chat
{
"tags": "tag4, tag5, tag6"
}
2
3
# Response 200
Successful request with empty body
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# PUT/chats/{id}/queue
# Move to the queue
Move a chat to the queue. If a request will be successful, a message with status 200 will be returned.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Response 200
Successful request with empty body
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# PUT/chats/{id}/department
# Assign a department to a chat
Assigns a department to a chat
. To do this, inform a valid chat id in the request parameter and in the request body the department number that the chat will be assigned.
To do this, informe the valid ID
to a chat and informe in the body request the department number with will be assigned.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Body parameters
Parameter | Type | Description |
---|---|---|
department | integer | Department number you want to assign to chat |
Department number you want to assign to chat
{
"department": 2546
}
2
3
# Response 200
Successful request with empty body
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# PUT/chats/{id}/close
# Close a chat
Close a chat, passing its ID
in the request parameter.
Note: Optionally, you can close a chat using a tabulation and/or a thank you message, sending these parameters in the request body. When the parameter
sendFeedback
is settrue
, a thank you message is sent when a chat is closed, if this message is configured in the Huggy panel.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Body parameters
Parâmetro | Tipo | Descrição | |
---|---|---|---|
tabulation | integer | Tabulation number | optional |
comment | string | Comment that will be sent | optional |
sendFeedback | boolean | Thank you message | optional |
Tabulation number
Comment that will be sent
Thank you message
{
"tabulation": "12484",
"comment": "comment through of API",
"sendFeedback": true
}
2
3
4
5
# Response 200
Successful request with empty body
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# PUT/chats/{id}/reopen
# Reopen a chat
Reopen a chat by passing its ID
as a parameter in the request.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Response 200
Successful request with empty body
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# PUT/chats/{id}/workflow
# Update the chat Workflow step
Update the Workflow step of a chat.
To do this, inform the Workflow step ID
in the request body.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Body parameter
Parameter | Type | Description | |
---|---|---|---|
stepId | integer | Step ID |
Step ID
# Request example
{
"stepId": 4760
}
2
3
# Response 200
Successful request with empty body
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# PUT/chats/{id}/assignToMe
# Assign the chat to the agent
Assign the chat to the company agent
Note: The response payload of this request will return the list of messages included in this service.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Response 200
{
"messages": [],
"chatID": 475,
"emailID": null,
"callStatus": "0",
"callQueue": null,
"callNumber": null,
"page_current": 0,
"formHuggyChat": {},
"contextVariables": []
}
2
3
4
5
6
7
8
9
10
11
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# DELETE/chats/{id}
# Delete a chats
Delete a chat by its ID
.
Note: Only an Administrator has permission to delete a chat. A chat can only be deleted when it has the status finished.
Parameter | Type | Description |
---|---|---|
id | integer | Chat ID |
Chat ID
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# Agents
# GET/agents
# View all agents
Get the information of all registered agents.
Note: This resource has an optional parameter that returns all found records, that is: all records in one or more pages.
Parameter | Type | Description |
---|---|---|
allPages | boolean | Parameter that will return all records if your value to true |
Parameter that will return all records if your value to true
# Response 200
[
{
"id": 39708,
"name": "Kivya",
"email": "test@test.com",
"photo_url": null,
"phone": "5575999999999"
},
{
"id": 39704,
"name": "Charles",
"email": "test@test.com",
"photo_url": null,
"phone": "5575999999999"
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# GET/agents/profile
# View the agent profile
Get the agent profile data logged into Huggy platform.
Note: The displayed profile corresponds to the user token that is logged into the platform.
# Response 200
{
"id": 39704,
"roleID": "3",
"companyID": "15333",
"name": "Charles",
"email": "test@test.com",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"createdAt": "2019-05-26 17:48:14"
}
2
3
4
5
6
7
8
9
# GET/agents/{id}
# View an agent data
Get data from a specific agent. An agent id is required in request parameters.
Parameter | Type | Description |
---|---|---|
allPages | boolean | Agent ID |
Agent ID
Request 200
{
"id": "39708",
"name": "kivya",
"login": "kivya@test.com",
"status": false,
"companyID": "15333",
"photoLink": null,
"gender": "0",
"birthDate": null,
"email": "knsilvestre@test.com",
"createdAt": "2019-05-26 23:34:53",
"updatedAt": "2019-06-06 10:02:43",
"whatsappID": "5488902",
"maxChats": "8",
"perfilID": "3",
"welcomeText": null,
"departmentsAccess": "1",
"viewedUpdates": "1",
"statusID": null,
"pushToken": null,
"osDevice": null,
"signatureEmail": null,
"autoLogin": null,
"autoDistribution": "0",
"lastAutoChatAt": null,
"active": "1",
"layoutType": "1",
"blocked": 0,
"office": null,
"confirmedEmail": "1",
"confirmEmailAlert": "",
"photo_url": null,
"type": 3,
"roleID": "3",
"phone": "557599999999",
"closedAlertInTrial": true,
"closedAlertExpiredTrial": false,
"perfilName": "Administrator",
"photo_small": "https://c.pzw.io/img/avatar-user-boy.jpg",
"image_small": "https://c.pzw.io/img/avatar-user-boy.jpg",
"number": "557599999999",
"isActive": true,
"isAvailable": false,
"isOnline": false,
"lastSeen": "2019-06-06 10:14:00",
"isGuest": "Guest"
}
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
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# GET/agents/{id}/status
# View agent status
Get the status of an agent by your ID
Parameter | Type | Description |
---|---|---|
allPages | boolean | Agent ID |
Agent ID
# Response 200
{
"id": null,
"name": "Unavailable",
"message": null,
"type": 0,
"createdAt": null,
"updatedAt": null,
"agentID": 34146,
"updatedBy": null,
"companyID": null,
"available": false
}
2
3
4
5
6
7
8
9
10
11
12
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# POST/agents
# Invite a new agent
To invite a new agent, three required attributes must be passed in the request body, they are: email, maxChats and type. An agent is defined by its profile access, represented by the type attribute that receives a numeric value, where:
Definition | Type | Key | Value |
---|---|---|---|
Agent | integer | type | 1 |
Manager | integer | type | 2 |
Administrator | integer | type | 3 |
type
1
type
2
type
3
# Body parameters
Parameter | Type | Decription | |
---|---|---|---|
string | Agent email address | ||
maxChats | integer | Maximum amount definition to a new agent | |
type | integer | Perfil ID of agent access |
Agent email address
Maximum amount definition to a new agent
Perfil ID of agent access
Note: A new agent will be viewed on the Huggy panel only after accepting the invitation sent by email.
# Request example
{
"email": "charles@test.com",
"maxChats": 50,
"type": 1
}
2
3
4
5
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 500
{
"reason": "Agent already signed in"
}
2
3
# PUT/agents/status
# Update the agent status
By default, an agent has three status options, making them Available, Unavailable or Paused.
To update the status of an agent, an id
attribute must be passed in the request body with a numeric value that makes the agent Available 0
, Unavailable -1
or Paused -2
.
Parameter | Type | Description |
---|---|---|
id | integer | Agent status ID |
Agent status ID
# Body parameters
Parameter | Type | Example | Description |
---|---|---|---|
id | integer | 0 | -1 | -2 | Set agent status |
Exemplo: 0 | -1 | -2
Set agent status
# Request example
"id": 0
# Response 200
{
"statusId": null,
"available": true,
"type": 1
}
2
3
4
5
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# PUT/agents/{id}
# Update an agent
Allows updating the information of the same agent who sent the request, as well as editing some account configuration data of other agents.
Only the attributes type
and active
can be used to update any agents record. You will receive a 200 response even if you attempt to update other data, but no changes will be made if the conditions mentioned in this section are not met
Note: This route has recently changed. For more details, click here (opens new window).
Parameter | Type | Description |
---|---|---|
id | integer | Agent ID |
Agent ID
# Body parameters
Parameter | Type | Description | |
---|---|---|---|
name | string | Agent name | |
login | string | Agent login | |
string | Agent email address | optional | |
password | string | Agent password | optional |
type | integer | Agent access profile | optional |
phone | string | Agent phone | optional |
active | boolean | Definition of activity of agent in plataform | optional |
Agent name
Agent login
Agent email address
Agent password
Agent access profile
Agent phone
Definition of activity of agent in plataform
# 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
# Response 200
Successful request with empty body
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Contacts
# GET/contacts
# View all contacts
Gets data from all registered contacts.
Optional parameters can be used in this request, such as:
Parameter | Type | Description |
---|---|---|
string | Contact email | |
phone | string | Contact phone |
Contact email
Contact phone
# Response 200
[
{
"id": "7662964",
"whatsappID": "5560493",
"name": "Charles",
"companyID": "15333",
"email": "test@test.com",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"groupID": null,
"address": "Ave Genésio Vargas",
"district": "Mantiqueira",
"state": "Minas Gerais",
"city": "Camanducaia",
"zipCode": "44000000",
"gender": "2",
"obs": null,
"birthDate": null,
"lastSeen": "2019-06-09 10:28:34",
"createdAt": "2019-06-09 10:29:34",
"updatedAt": "2019-06-09 10:29:34",
"status": "1",
"lastSync": null,
"syncWhatsapp": "0",
"lastChatID": null,
"tokens": "charles 7588888888 7533333333 test@test.com 7588888888",
"mobile": "7588888888",
"phone": "7533333333",
"talkChatType": 2,
"organizationID": null,
"blocked": "0",
"canAutoUpdatePhoto": "1",
"telegramID": null,
"tokenTelegram": null,
"telegramBotCustomerID": null,
"parentID": null,
"nameEmoji": "Charles",
"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": true,
"telegramBot": false,
"whatsappApi": false,
"instagram": false
},
"customFields": [],
"custom_fields": [],
"number": "7588888888",
"type": 2,
"isEditable": true,
"messengerId": null,
"groups": [],
"organizations": [],
"organization": false,
"parent": null,
"links": []
},
{
"id": "7662931",
"whatsappID": "2911451",
"name": "Kivya Aguiar",
"companyID": "15333",
"email": "test@test.com",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"groupID": null,
"address": "Ave Genésio Vargas",
"district": "Mantiqueira",
"state": "Minas Gerais",
"city": "Camanducaia",
"zipCode": "44000000",
"gender": "1",
"obs": null,
"birthDate": null,
"lastSeen": "2019-06-09 10:24:31",
"createdAt": "2019-06-09 10:25:31",
"updatedAt": "2019-06-09 10:25:31",
"status": "1",
"lastSync": null,
"syncWhatsapp": "0",
"lastChatID": null,
"tokens": "kivya aguiar 75999999999 7533333333 test@test.com 75999999999",
"mobile": "75999999999",
"phone": "7533333333",
"talkChatType": 2,
"organizationID": null,
"blocked": "0",
"canAutoUpdatePhoto": "1",
"telegramID": null,
"tokenTelegram": null,
"telegramBotCustomerID": null,
"parentID": null,
"nameEmoji": "Kivya Aguiar",
"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": true,
"telegramBot": false,
"whatsappApi": false,
"instagram": false
},
"customFields": [],
"custom_fields": [],
"number": "75999999999",
"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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# GET/contacts/{id}
# View a contact
Get the specific contact data by its ID.
Parameter | Type | Description |
---|---|---|
id | integer | Contact ID |
Contact ID
# Response 200
{
"id": "4771390",
"whatsappID": null,
"name": "2299951200033583",
"companyID": "11721",
"email": null,
"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": "2019-01-16 15:48:38",
"createdAt": "2019-01-16 15:49:38",
"updatedAt": "2019-01-16 15:49:38",
"status": "1",
"lastSync": null,
"syncWhatsapp": "0",
"lastChatID": null,
"tokens": "2299951200033583",
"mobile": null,
"phone": null,
"talkChatType": 2,
"organizationID": null,
"blocked": "0",
"canAutoUpdatePhoto": "1",
"telegramID": null,
"tokenTelegram": null,
"telegramBotCustomerID": null,
"parentID": null,
"nameEmoji": "2299951200033583",
"photo_small": "https://c.pzw.io/img/avatar-user-boy.jpg",
"image_small": "https://c.pzw.io/img/avatar-user-boy.jpg",
"channelsSituation": {
"voip": false,
"messenger": false,
"widget": false,
"whatsapp": false,
"email": false,
"sms": false,
"telegramBot": false,
"whatsappApi": false,
"instagram": false
},
"customFields": [],
"custom_fields": [],
"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
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# GET/contacts/{id}/timeline
# View a contact timeline
Get the contact timeline data by its ID. The timeline is the data of contact creation and all associated events since then.
Parameter | Type | Description |
---|---|---|
id | integer | Contact ID |
Contact ID
# Response 200
[
{
"id": 8227983,
"icon": "comment",
"text": "Excelente cliente.",
"title": "Comentário",
"time": "09/07/2019 08:02:27",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"name": "Kivya",
"type": "comment.created",
"channel": null,
"department": null,
"duration": null,
"situation": null,
"chatID": null,
"deleted": false
},
{
"id": 8227983,
"icon": "email",
"text": "A call was initiated by the customer through the email channel",
"title": "Chat started",
"time": "07/07/2019 09:12:28",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"name": "Williams",
"type": "chat.created",
"channel": "email",
"department": null,
"duration": null,
"situation": "in_chat",
"chatID": "19378164",
"deleted": false
},
{
"icon": "user",
"text": "Contact Williams was created",
"title": "Contact created",
"time": "07/07/2019 09:12:15",
"photo": "",
"name": ""
}
]
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
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# GET/contacts/{id}/groups
# View a contact group
Get the group data that the contact belong.
Parameter | Type | Description |
---|---|---|
id | integer | Contact ID |
Contact ID
# Response 200
[
{
"id": "1851",
"name": "TOP 5",
"companyID": "15333",
"createdAt": "2019-06-10 12:14:16",
"updatedAt": "2019-06-10 12:14:16",
"status": "1",
"nameEmoji": "TOP 5"
}
]
2
3
4
5
6
7
8
9
10
11
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# GET/contacts/{id}/organizations
# View a contact organization
Gets data of a contact organization.
Parameter | Type | Description |
---|---|---|
id | integer | Contact ID |
Contact ID
# Response 200
[
{
"id": "18693",
"name": "Huggy",
"cnpj": null,
"ie": null,
"address": null,
"state": null,
"city": null,
"country": null,
"district": null,
"zipCode": null,
"createdAt": "2019-06-11 16:08:36",
"updatedAt": "2019-06-11 16:08:36",
"companyID": "12025",
"status": "1",
"description": "Technology",
"observation": null,
"domains": "huggy.io",
"phone": "7533333333",
"photo": null,
"nameEmoji": "Huggy",
"customFields": []
}
]
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 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# GET/contacts/{id}/customFields
# View a custom field
Get the contact custom field data.
Parameter | Type | Description |
---|---|---|
id | integer | Contact ID |
Contact ID
# Response 200
[
{
"id": "487",
"companyID": "12025",
"name": "alternative email",
"description": "second option of email",
"fieldType": "email",
"payload": null,
"entityID": "1",
"validation": "[\"huggy.validations.email\"]",
"createdAt": "2019-06-11 16:41:31",
"updatedAt": "2019-06-11 16:41:31",
"deletedAt": null,
"active": "1",
"status": "1",
"token": "alternative_email_customer",
"inputType": "input",
"value": "alternative@test.com"
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# GET/contacts/{id}/linkedContacts
# View contact associations
An association defines that a contact can be considered main contact of other contact.
Parameter | Type | Description |
---|---|---|
id | integer | Contact ID |
Contact ID
# Response 200
[
{
"id": "5081373",
"whatsappID": "3951665",
"name": "Karl Edward",
"companyID": "12025",
"email": "karledward@test.com",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"groupID": null,
"address": "",
"district": "",
"state": null,
"city": "",
"zipCode": "",
"gender": "2",
"obs": null,
"birthDate": null,
"lastSeen": "2019-06-11 17:38:50",
"createdAt": "2019-06-11 17:39:50",
"updatedAt": "2019-06-11 17:39:50",
"status": "1",
"lastSync": null,
"syncWhatsapp": "0",
"lastChatID": null,
"tokens": "karl edward 7588888888 karledward@test.com 7588888888",
"mobile": "7588888888",
"phone": null,
"talkChatType": 2,
"organizationID": null,
"blocked": "0",
"canAutoUpdatePhoto": "1",
"telegramID": null,
"tokenTelegram": null,
"telegramBotCustomerID": null,
"parentID": null,
"nameEmoji": "Karl Edward",
"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": true,
"telegramBot": false,
"whatsappApi": false,
"instagram": false
},
"customFields": [],
"custom_fields": [],
"number": "7588888888",
"type": 2,
"isEditable": true,
"messengerId": null,
"groups": [],
"organizations": [],
"organization": false,
"parent": null,
"links": [
{
"id": 5081372,
"name": "Charles Edward",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg"
}
]
}
]
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
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# POST/contacts
# Create a contact
To create a new contact, name
and email
information are required.
Parameter | Type | Description |
---|---|---|
name | string | Contact name |
string | Contact email |
Contact name
Contact email
# Requested example
{
"name": "Charles Edware",
"email": "test@test.com"
}
2
3
4
# Response 201
{
"id": "7663175",
"whatsappID": null,
"name": "Edward",
"companyID": "15333",
"email": "test@test.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": "2019-06-09 10:56:01",
"createdAt": "2019-06-09 10:57:01",
"updatedAt": null,
"status": 1,
"lastSync": null,
"syncWhatsapp": null,
"lastChatID": null,
"tokens": null,
"mobile": null,
"phone": null,
"talkChatType": 2,
"organizationID": null,
"blocked": null,
"canAutoUpdatePhoto": null,
"telegramID": null,
"tokenTelegram": null,
"telegramBotCustomerID": null,
"parentID": null,
"nameEmoji": "Edward",
"photo_small": "https://c.pzw.io/img/avatar-user-boy.jpg",
"image_small": "https://c.pzw.io/img/avatar-user-boy.jpg",
"channelsSituation": {
"voip": false,
"messenger": false,
"widget": false,
"whatsapp": false,
"email": true,
"sms": false,
"telegramBot": false,
"whatsappApi": false,
"instagram": false
},
"customFields": [],
"custom_fields": [],
"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
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# POST/contacts/{id}/chats
# Create a chat from the contact ID.
Create a chat from the contact's ID
passing the uuid
of the desired channel.
Note: If the chat is created from the
subject
property.
Parameter | Type | Description |
---|---|---|
id | integer | Contact ID |
Contact ID
# Parâmetros do corpo
Parameter | Type | Description | |
---|---|---|---|
channelUuid | string | UUID of the channel where the service will be created | |
subject | string | Email subject | optional |
UUID of the channel where the service will be created
Email subject
# Exemplo de requisição
{
"channelUuid": "28b407cd-81a4-3abf-94d6-ca4f948d5d2f",
"subject": "Vacation"
}
2
3
4
# Resposta 201
{
"id": 214049,
"agentId": 40419,
"secondAgentId": null,
"contactId": 671,
"departmentId": null,
"tabulationId": null,
"chatTabulation": null,
"lastMessage": {
"text": "Agent Igor joined the conversation.",
"file": null,
"sendAt": "2024-01-29 10:45:47",
"senderType": null
},
"chatDepartment": null,
"unread": 0,
"channels": [
{
"uuid": "28c407cd-81a4-4arf-94d6-ca4f948d5d1f",
"id": "27b407cd-81a4-4abf-94d6-ca4f948d5d1f",
"name": "Gupshup",
"type": "Whatsapp-Enterprise"
}
],
"chatCustomer": {
"id": 671,
"name": "John Doe",
"mobile": "5511999999999",
"phone": "5511333333333",
"email": "john@doe.com",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"custom_fields": {
"custom_cpf_customer": null,
"custom_phone_customer": null,
"custom_email_customer": null,
"email_customer": null,
"empresa_customer": null,
"number_customer": null,
"youtube_customer": null,
"cnpj_customer": null,
"cpf_customer": null,
"date_customer": null,
"hora_customer": null,
"instagram_customer": null,
"agente_customer": null,
"canal_principal_customer": null,
"gerente_de_contas_customer": null,
"grupo_customer": null,
"main_channel_customer": null,
"ramo_customer": null,
"team_leader_customer": null
}
},
"workflowID": null,
"workflowStepID": null,
"queueNumber": null,
"situation": "in_chat",
"createdAt": "2024-01-29 10:45:46",
"updatedAt": null,
"attendedAt": null,
"closedAt": null,
"enabledSession": false,
"channel": "whatsapp-enterprise",
"agents": [
{
"id": 40419,
"name": "Igor",
"mobile": null,
"phone": null,
"email": "igor@huggy.io",
"photo": "https://cdn.pzw.io/4743932db30f9171f6bf15042e8f87.jpg",
"isActive": true,
"isOnline": true,
"isAvailable": false,
"statusID": "-1",
"statusType": 0,
"photo_url": "https://cdn.pzw.io/4743932db30f9171f6bf15042e8f87.jpg",
"smallPhotoUrl": "https://cdn.pzw.io/4743932db30f9171f6bf15042e8f87.jpg"
}
]
}
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
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# POST/timeline/createComment/{id}
# Create a comment in contact timeline
Create a comment in contact’s timeline by its ID. Comments collaborate for report activities with the customer, building a history of their attendance.
Parameter | Type | Description |
---|---|---|
id | integer | Contact ID |
Contact ID
# Body parameters
Parameter | Type | Description |
---|---|---|
comment | string | Comments inserted by agent in contact panel |
Exemplo: Comments inserted by agent in contact panel
# Requested example
{
"comment": "waiting for documents"
}
2
3
# Response 201
{
"id": 7740752,
"icon": "comment",
"text": "In last attendance the customer showed interest in acquiring a plan with hight resources",
"title": "Comments",
"time": "12/06/2019 15:55:27",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"name": "Teste",
"type": "comment.created",
"channel": null,
"department": null,
"duration": null,
"situation": null,
"chatID": null,
"deleted": false
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# PUT/contacts/{id}
# Update a contact
Update a contact by its ID
Parameter | Type | Description |
---|---|---|
id | integer | Contact ID |
Contact ID
# Body parameters
Parameter | Type | Description | |
---|---|---|---|
name | string | Contact name | |
string | Contact email | ||
phone | string | Contact phone | |
mobile | string | Contact mobile | |
address | string | Contact address | optional |
city | string | Contact city | optional |
district | string | Contact district | optional |
state | string | Contact state | optional |
obs | string | Comment done about contact | optional |
Contact name
Contact email
Contact phone
Contact mobile
Contact address
Contact city
Contact district
Contact state
Comment done about contact
# Requested example
{
"name": "john Doe",
"email": "john@doe.com",
"mobile": "7599999999",
"phone": "7533333333",
"address": "Port Prince",
"city": "Feira de Santana",
"district": "Santa Mônica I",
"state": "Bahia",
"obs": "This is a field to comments about the contact"
}
2
3
4
5
6
7
8
9
10
11
# Response 200
{
"id": "5080524",
"whatsappID": null,
"name": "john Doe",
"companyID": "11743",
"email": "john@doe.com",
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"groupID": null,
"address": "Port Prince",
"district": "Santa Mônica I",
"state": "Bahia",
"city": "Feira de Santana",
"zipCode": null,
"gender": null,
"obs": "This is a field to comments about the contact",
"birthDate": null,
"lastSeen": null,
"createdAt": null,
"updatedAt": null,
"status": 1,
"lastSync": null,
"syncWhatsapp": null,
"lastChatID": null,
"tokens": null,
"mobile": "7599999999",
"phone": "7533333333",
"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": true,
"telegramBot": false,
"whatsappApi": false,
"instagram": false
},
"customFields": [],
"custom_fields": [],
"number": "7599999999",
"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
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# PUT contacts/{contactId}/execFlow
# Execute a Flow to a contact
Initialize the execution of a Flow
to a specific contact.
Channels that can use this resource:
Email
Messenger
TelegramBot
Whatsapp
To specify the channel that will be used to execute the Flow
, it is necessary to send the uuid
. This uuid
is the universal identifier of the channel.
The value of the uuid
can be obtained at the Huggy panel bellow the section: Configuration >>
Channels >>
Channel Details.
Besides the uuid
, there is more 4 attributes that can be provide during the request:
variables
( object )
Corresponds to the fields that can be used during flow execution.
"variables": {
"data": "15/10/2019",
"url_event": "https://huggy.io"
}
2
3
4
# Running example
At the variables
declaration above, there is two terms that can be used during the Flow execution: data
and url_evento
. For these two terms to be used it is necessary to inform them in some part of the flow's action, for example, in the action of sending message.
When sending a message with the following text:
"Hello, good afternoon. The event will be on {{data
}}. The access link is the following: {{
url_event`}}".
The system will replace the terms data
and url_event
by the values provided at the variables declaration, being as fllows:
"Hello, good afternoon. The event will be on 15/10/2019
. The access link is the following: https://huggy.io
".
Note: default { }
whenInChat
( true | false )
If the chat is in attendance with the agent, the following conditions will be considered:
true
: Execute the Flow and remove the agent from the conversation (the chat will come back to the automatic status).false
: Do not execute the Flow.
Note: default false
whenWaitForChat
( true | false )
If the chat is waiting on the queue, the following conditions will be considered:
true
: Do not execute the Flow.false
: The chat will come back to the automatic status.
Note: default false
whenInAuto
( true | false )
If it is on automatic and/or hold another Flow im process, the following conditions will be considered:
true
: Abort the actual Flow and initialize the execution of the provided Flow.false
: Do nothing.
Observations:
For the right operation of this resource in the channels Messenger and TelegramBot the provided contact must have a link with the company, that is, it is necessary that the contact has already done some service with the company through the mentioned channels.
In the case of whatsapp channel, it is possible to run the flow without previous service. However, the contact's phone number must be valid: Country Area Code (55-Brazil) + Area Code (DDD) + Phone Number. Ex. 5511988886666.
If any of the four attributes above explained is not provided at the request, the system will pick up the default value of each one.
If there is no open chat with the contact, a new chat will be created.
Parameter | Type | Description |
---|---|---|
contactId | integer | Contact ID |
Exemplo: Contact ID
# Request Example
{
"uuid": "c2d519bf-913a-4a14-8826-d50ad7e9ccc",
"flowId": 21,
"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
11
# Response 200
{
"reason": "Flow processed",
"chatID": 19291350
}
2
3
4
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# DELETE/contacts/{id}
# Delete a contact
Delete a contact by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Contact ID |
Contact ID
# Response 204
Successful request with empty body
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# Custom Fields
# GET/customFields
# View all custom fields
Get list of all custom fields. Custom fields are useful to insert additional information on the contact.
# Response 200
[
{
"id": "906",
"companyID": "12043",
"name": "second email option",
"description": "second email option",
"fieldType": "email",
"payload": null,
"entityID": "1",
"validation": "[\"huggy.validations.email\"]",
"createdAt": "2019-06-12 17:10:21",
"updatedAt": "2019-06-12 17:10:21",
"deletedAt": null,
"active": "1",
"status": "1",
"token": "second_option_email_customer",
"inputType": "input"
},
{
"id": "907",
"companyID": "12043",
"name": "last address of the organization",
"description": "last address",
"fieldType": "string",
"payload": null,
"entityID": "3",
"validation": "[\"huggy.validations.string\"]",
"createdAt": "2019-06-12 17:11:48",
"updatedAt": "2019-06-12 17:11:48",
"deletedAt": null,
"active": "1",
"status": "1",
"token": "last_address_organization",
"inputType": "input"
}
]
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
# Departments
# GET/departments
# View all departments
Get the list of all departments created in the company.
Note: This resource has an optional parameter that returns all found records, this is: all records in one or more pages.
Parameter | Type | Description | |
---|---|---|---|
allPages | boolean | Parameter that will return all records if your value to true | optional |
Parameter that will return all records if your value to true
# Response 200
[
{
"id": 25954,
"name": "1 - Financial",
"parentId": null
},
{
"id": 25955,
"name": "2 - Warehouse",
"parentId": null
},
{
"id": 25956,
"name": "3 - Sales",
"parentId": null
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# GET/departments/parents
# View all parent departments
Get list of all parent departments. Parent departments are departments that have sub-departments.
# Response 200
[
{
"id": 25954,
"name": "1 - Financial"
},
{
"id": 25955,
"name": "2 - Warehouse"
}
]
2
3
4
5
6
7
8
9
10
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# GET/departments/{id}
# View a department
Get the registered department information by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Department ID |
Department ID
# Response 200
{
"id": 30326,
"name": "Financeiro",
"companyID": 15691,
"active": true,
"color": "#000000",
"order": 1,
"parentID": null
}
2
3
4
5
6
7
8
9
# Tags
# DELETE /tags/{id}
# Delete tags
Deletes a tag by its ID
Parameter | Type | Description |
---|---|---|
id | integer | Tag ID |
Tag ID
# Response 204
Request successful with an empty body
# Response 404
{
"reason": "This message will show that doesn't exist result for your search."
}
2
3
# DELETE /tags/batch
# Delete batch tags
Deletes a batch of tags by passing an array in the request body
# Request example
{
"tags": ["tagValue", "tagValue2", "..."]
}
2
3
# Response 204
Request successful with an empty body
# Response 404
{
"reason": "This message will show that doesn't exist result for your search."
}
2
3
# Tabulations
# GET/tabulations
# View all tabulations
Get the list of all created tabulations. Tabulations are useful to identify the context of a chat.
Note: This resource has an optional parameter that returns all found records, this is: all records in one or more pages.
Parameter | Type | Description |
---|---|---|
allPages | boolean | Parameter that will return all records if your value to true |
Parameter that will return all records if your value to true
# Response 200
[
{
"id": 12055,
"name": "Exchange"
},
{
"id": 12054,
"name": "Deadline"
},
{
"id": 12053,
"name": "Doubt"
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
# GET/tabulations/{id}
# View a tabulation
Gets data of a tabulation by its ID.
Parameter | Type | Description |
---|---|---|
id | integer | Tabulations ID |
Tabulations ID
# Response 200
{
"id": "12054",
"companyID": "12043",
"name": "Deadline",
"createdAt": "2019-06-13 09:13:44",
"updatedAt": "2019-06-13 09:13:44",
"status": "1",
"dao": null,
"remapped": []
}
2
3
4
5
6
7
8
9
10
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# Telegram Bot
# GET/telegramBot
# View all telegram bots
Get the list of all telegram bots registered on the Huggy platform.
# Response 200
[
{
"id": 9,
"name": "doe",
"username": "johndoe_bot"
},
{
"id": 24,
"name": "knsilvestre",
"username": "knsilvestre_bot"
},
{
"id": 27,
"name": "carlosaguiar",
"username": "carlossantosaguiar_bot"
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Response 400
{
"reason": "This message will show that doesn't exist result for your search."
}
2
3
# GET/telegramBot/{id}
# View a telegram bot
Get the telegram bot data by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Telegram bot ID |
Telegram bot ID
# Response 200
{
"id": "9",
"name": "doe",
"username": "johndoe_bot",
"uuid": "5d960a25-4762-4021-a814-b6cf4d26e11f",
"flowIn": {
"id": 2,
"description": "Welcome to Attendance"
},
"flowOut": {
"id": 3,
"description": "Satisfaction Survey"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# Response 400
{
"reason": "This message will inform what caused the error."
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search."
}
2
3
# POST/telegramBot
# Register a telegram bot
Register a new telegram bot on the Huggy plataform by its token
.
# Body parameter
Parameter | Type | Description |
---|---|---|
token | string | Telegram bot token |
Telegram bot token
# Request example
{
"token": "3400010986:ACGLDsVx5MKO_06Jw08wgPerpI0ac3bODdM"
}
2
3
# Response 201
{
"id": "9",
"name": "doe",
"username": "johndoe_bot",
"uuid": "5d960a25-4762-4021-a814-b6cf4d26e11f",
"flowIn": null,
"flowOut": null
}
2
3
4
5
6
7
8
# Response 400
{
"reason": "This message will inform what caused the error."
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search."
}
2
3
# PUT/telegramBot/{id}
# Update a telegram bot
Update name, input flows and output flows of a telegram bot by its ID
.
# Body parameter
Parameter | Type | Description |
---|---|---|
name | string | Bot nickname |
flowInID | integer | Input flow ID |
flowOutID | integer | Output flow ID |
Bot nickname
Input flow ID
Output flow ID
# Request example
{
"name": "John Doe",
"flowInID": "2",
"flowOutID": "3"
}
2
3
4
5
# Response 200
{
"id": "29",
"name": "carlosaguiar",
"username": "carlossantosaguiar_bot",
"uuid": "787e60dd-f263-4f0b-b4fc-dc98667be1a2",
"flowIn": {
"id": 2,
"description": "Welcome to Attendance"
},
"flowOut": {
"id": 3,
"description": "Satisfaction Survey"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# Response 400
{
"reason": "This message will inform what caused the error."
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search."
}
2
3
# DELETE/telegramBot/{id}
# Delete a telegram bot
Delete a telegram bot by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Telegram bot ID |
Telegram bot ID
# Response 204
Successful request with empty body
# Response 400
{
"reason": "This message will inform what caused the error."
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search."
}
2
3
# Shortcuts
# GET/shortcuts
# View all shortcuts
Get the list of all shortcuts created in Huggy platform. Shortcuts are used for sending predefined texts, photos, image and others files.
# Response 200
[
{
"id": "17229",
"name": "Welcome message",
"key": "wmessage",
"file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
"text": "Hello! Welcome to the sales department!",
"public": true
},
{
"id": "17228",
"name": "Welcome message",
"key": "bvwarehouse",
"file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
"text": "Hello! Welcome to the warehouse department!",
"public": false
},
{
"id": "17227",
"name": "Welcome message",
"key": "bvfinancial",
"file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
"text": null,
"public": 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
# GET/shortcuts/{id}
# View a shortcut
Get the shortcut data by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Shortcut ID |
Shortcut ID
# Response 200
{
"id": "17229",
"name": "Welcome message",
"key": "wmessage",
"file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
"text": "Hello! Welcome to the sales department!",
"public": true
}
2
3
4
5
6
7
8
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# POST/shortcuts
# Create a new shortcut
Creates a new shortcut for sending texts, images and files.
Note: For sending text messages, a limit of one thousand characters is reserved.
# Body parameters
Parameter | Type | Description | |
---|---|---|---|
name | string | Shortcut name | |
key | string | Keyword used to call the shortcut | |
file | string | Link to the file used in sending the shortcut | |
text | string | A text message used in sending the shortcut | optional |
public | boolean | Makes the shortcut visible on the attendance screen or in the shortcuts list | optional |
Shortcut name
Keyword used to call the shortcut
Link to the file used in sending the shortcut
A text message used in sending the shortcut
Makes the shortcut visible on the attendance screen or in the shortcuts list
# Request example
{
"name": "Document subscription",
"key": "docs_sub",
"file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
"text": "A message that accompanies the sent document.",
"public": true
}
2
3
4
5
6
7
# Response 201
{
"id": 34009,
"name": "Document subscription",
"key": "docs_sub",
"file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
"text": "A message that accompanies the sent document.",
"public": true
}
2
3
4
5
6
7
8
# Response 400
{
"reason": "This message will inform what caused the error."
}
2
3
# PUT/shortcuts/{id}
# Update shortcut
Update a shortcut by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Shortcut ID |
Shortcut ID
# Body parameters
Parameter | Type | Description | |
---|---|---|---|
name | string | Shortcut name | |
key | string | Keyword used to call the shortcut | |
file | string | Link to the file used in sending the shortcut | |
text | string | A text message used in sending the shortcut | optional |
public | boolean | Makes the shortcut visible on the attendance screen or in the shortcuts list | optional |
Shortcut name
Keyword used to call the shortcut
Link to the file used in sending the shortcut
A text message used in sending the shortcut
Makes the shortcut visible on the attendance screen or in the shortcuts list
# Request example
{
"name": "The new name for the shortcut",
"key": "keyword_new",
"file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
"text": "An updated message for the shortcut.",
"public": false
}
2
3
4
5
6
7
# Response 200
{
"id": 34003,
"name": "The new name for the shortcut",
"key": "keyword_new",
"file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
"text": "An updated message for the shortcut.",
"public": false
}
2
3
4
5
6
7
8
# Response 400
{
"reason": "This message will inform what caused the error."
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search."
}
2
3
# DELETE/shortcuts/{id}
# Delete a shortcut
Delete a shortcut by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Shortcut ID |
Shortcut ID
# Response 204
Successful request with empty body
# Response 404
{
"reason": "This message will show that doesn't exist result for your search."
}
2
3
# Status
# GET/status
# View all status
Get the list of all custom status that was created by agents. The agent status corresponds to a special condition that it can be in, but it must be associated with available
or unavailable
option.
# Response 200
[
{
"id": "1691",
"name": "Absent",
"message": "Hello! I'll be right back.",
"type": "0",
"createdAt": "2019-06-13 11:59:56",
"updatedAt": "2019-06-13 12:00:16",
"agentID": "34976",
"available": false
},
{
"id": "1690",
"name": "lunch time",
"message": "Hello! Our lunch time is from 13h to 14h.",
"type": "0",
"createdAt": "2019-06-13 11:58:35",
"updatedAt": "2019-06-13 12:00:06",
"agentID": "34976",
"available": false
},
{
"id": "1689",
"name": "Meeting",
"message": "Hello! We are meeting. logo we will follow.",
"type": "0",
"createdAt": "2019-06-13 11:57:21",
"updatedAt": "2019-06-13 11:57:21",
"agentID": "34976",
"available": 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
30
31
32
# Workflow
# GET/workflows
# View all workflows
Get the list of all workflows
and their respective phases.
Workflows can be created to guide the attendance phases.
# Response 200
[
{
"id": "5656",
"companyID": "12043",
"name": "Delivery cycle",
"createdAt": "2019-06-13 15:05:41",
"updatedAt": "2019-06-13 15:09:10",
"status": "1",
"fatherID": null,
"color": "#4f81bd",
"steps": [
{
"id": "5657",
"companyID": "12043",
"name": "Material preparation",
"createdAt": "2019-06-13 15:06:43",
"updatedAt": "2019-06-13 15:06:43",
"status": "1",
"fatherID": "5656",
"color": null,
"steps": []
},
{
"id": "5658",
"companyID": "12043",
"name": "Material collection",
"createdAt": "2019-06-13 15:06:58",
"updatedAt": "2019-06-13 15:06:58",
"status": "1",
"fatherID": "5656",
"color": null,
"steps": []
},
{
"id": "5659",
"companyID": "12043",
"name": "Send to received",
"createdAt": "2019-06-13 15:07:26",
"updatedAt": "2019-06-13 15:07:26",
"status": "1",
"fatherID": "5656",
"color": null,
"steps": []
},
{
"id": "5660",
"companyID": "12043",
"name": "Feedback delivered",
"createdAt": "2019-06-13 15:08:12",
"updatedAt": "2019-06-13 15:08:12",
"status": "1",
"fatherID": "5656",
"color": null,
"steps": []
}
]
},
{
"id": "5651",
"companyID": "12043",
"name": "Sales validation cycle",
"createdAt": "2019-06-13 14:36:43",
"updatedAt": "2019-06-13 14:36:43",
"status": "1",
"fatherID": null,
"color": "#4f81bd",
"steps": [
{
"id": "5652",
"companyID": "12043",
"name": "Open request",
"createdAt": "2019-06-13 14:37:02",
"updatedAt": "2019-06-13 14:39:53",
"status": "1",
"fatherID": "5651",
"color": null,
"steps": []
},
{
"id": "5653",
"companyID": "12043",
"name": "Validando Informações",
"createdAt": "2019-06-13 14:39:37",
"updatedAt": "2019-06-13 14:40:22",
"status": "1",
"fatherID": "5651",
"color": null,
"steps": []
},
{
"id": "5654",
"companyID": "12043",
"name": "Accepted request",
"createdAt": "2019-06-13 14:40:57",
"updatedAt": "2019-06-13 14:40:57",
"status": "1",
"fatherID": "5651",
"color": null,
"steps": []
},
{
"id": "5655",
"companyID": "12043",
"name": "Request denied",
"createdAt": "2019-06-13 14:41:13",
"updatedAt": "2019-06-13 14:41:13",
"status": "1",
"fatherID": "5651",
"color": null,
"steps": []
}
]
}
]
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# GET/workflows/{id}
# View a workflow
Get the workflow data by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Workflow ID |
Workflow ID
# Response 200
{
"id": "5656",
"companyID": "12043",
"name": "Delivery cycle",
"createdAt": "2019-06-13 15:05:41",
"updatedAt": "2019-06-13 15:09:10",
"status": "1",
"fatherID": null,
"color": "#4f81bd",
"steps": [
{
"id": "5657",
"companyID": "12043",
"name": "Material preparation",
"createdAt": "2019-06-13 15:06:43",
"updatedAt": "2019-06-13 15:06:43",
"status": "1",
"fatherID": "5656",
"color": null,
"steps": []
},
{
"id": "5658",
"companyID": "12043",
"name": "Material collection",
"createdAt": "2019-06-13 15:06:58",
"updatedAt": "2019-06-13 15:06:58",
"status": "1",
"fatherID": "5656",
"color": null,
"steps": []
},
{
"id": "5659",
"companyID": "12043",
"name": "Send to recipient",
"createdAt": "2019-06-13 15:07:26",
"updatedAt": "2019-06-13 15:07:26",
"status": "1",
"fatherID": "5656",
"color": null,
"steps": []
},
{
"id": "5660",
"companyID": "12043",
"name": "Feedback delivered",
"createdAt": "2019-06-13 15:08:12",
"updatedAt": "2019-06-13 15:08:12",
"status": "1",
"fatherID": "5656",
"color": null,
"steps": []
}
]
}
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
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# Bots
# GET/bots
# View all bots
Get the list of all bots
created in Huggy platform
# Response 200
[
{
"id": 2926,
"name": "HuggyBot"
},
{
"id": 2925,
"name": "HuggyGirl"
}
]
2
3
4
5
6
7
8
9
10
# GET/bots/{id}
# View a bot
Get the bot data by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Bot ID |
Bot ID
# Response 200
{
"id": "2926",
"companyID": "15691",
"name": "HuggyBot",
"uid": null,
"createdAt": "2019-06-17 08:40:06",
"updatedAt": "2019-06-17 08:41:58",
"status": "1",
"description": null,
"photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
"phone": null,
"email": "charles@test.com",
"birthday": "2019-06-17",
"transferMessage": "You will transferred for other attendant.",
"welcomeMessage": "Hello, Welcome to the Huggy.",
"maxErrors": "100",
"engineID": "3",
"apiAiLang": "en",
"apiAiClientToken": "d7d1d9daec634e598ea9ccd59acf7693",
"apiAiDeveloperToken": "9555d63499614423859ade081ff74da4",
"watsonUsername": null,
"watsonPassword": null,
"watsonWorkspace": null,
"watsonAcceptEmptyIntents": "0",
"botServiceSecret": null,
"botServiceBotHandle": 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
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# Virtual Agents
# GET/virtualAgents
# View all virtual agents
Get the list of all virtual agents registered in Huggy platform.
# Response 200
[
{
"id": 784,
"name": "huggyboy",
"email": "huggyboy@test.com"
},
{
"id": 785,
"name": "huggygirl",
"email": "huggygirl@test.com"
},
{
"id": 782,
"name": "huggyhank",
"email": "hugggyhenk@test.com"
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# GET/virtualAgents/{id}
# View a virtual agent
Get the virtual agent data by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Virtual agent ID |
Virtual agent ID
# Response 200
{
"id": "784",
"companyID": "15691",
"name": "huggyboy",
"mobile": "557592731111",
"email": "huggyboy@test.com",
"phone": null,
"photoLink": "https://c.pzw.io/img/avatar-user-boy.jpg",
"createdAt": "2019-06-17 17:11:13",
"updatedAt": "2019-06-17 17:11:13",
"status": "1"
}
2
3
4
5
6
7
8
9
10
11
12
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# Projects
# GET/projects
# View all projects
Get the list of all projects created in Huggy platform. Each project is composed by one or more flows.
Note: In addition to the projects and their respective flows, this action will return the system default context variables.
# Response 200
[
{
"id": "497786",
"companyID": "1",
"name": "ATENDIMENTO SYNTESIS",
"createdBy": "3278",
"status": "1",
"createdAt": "2020-03-24 10:30:42",
"updatedAt": "2020-03-24 10:30:42"
},
{
"id": "497804",
"companyID": "1",
"name": "Conversation Page",
"createdBy": "38736",
"status": "1",
"createdAt": "2020-04-07 22:25:49",
"updatedAt": "2020-04-07 22:25:49"
},
{
"id": "486288",
"companyID": "1",
"name": "CS Tech",
"createdBy": "19912",
"status": "1",
"createdAt": "2019-04-25 14:20:54",
"updatedAt": "2019-04-25 14:20:54"
},
{
"id": "11940",
"companyID": "1",
"name": "Digital SDR",
"createdBy": "46",
"status": "1",
"createdAt": "2019-02-23 17:48:46",
"updatedAt": "2019-02-23 17:48:46"
}
]
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
# GET/projects/{id}
# View a project
Get the project data by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Project ID |
Project ID
# Response 200
{
"id": "497786",
"companyID": "1",
"name": "ATENDIMENTO SYNTESIS",
"createdBy": "3278",
"status": "1",
"createdAt": "2020-03-24 10:30:42",
"updatedAt": "2020-03-24 10:30:42",
"variables": {
"Project flows": [],
"huggy": {
"time_hello": "huggy.time_hello",
"chat": {
"id": "huggy.chat.id",
"created_at": "huggy.chat.created_at",
"department": {
"id": "huggy.chat.department.id",
"name": "huggy.chat.department.name",
"order": "huggy.chat.department.order"
},
"tabulation": {
"id": "huggy.chat.tabulation.id",
"name": "huggy.chat.tabulation.name"
},
"contact": {
"id": "huggy.chat.contact.id",
"name": "huggy.chat.contact.name",
"created_at": "huggy.chat.contact.created_at",
"first_name": "huggy.chat.contact.first_name",
"second_name": "huggy.chat.contact.second_name",
"mobile": "huggy.chat.contact.mobile",
"email": "huggy.chat.contact.email",
"organization": {
"id": "huggy.chat.contact.organization.id",
"name": "huggy.chat.contact.organization.name",
"description": "huggy.chat.contact.organization.description"
},
"custom.apelido_customer": "huggy.chat.contact.custom.apelido_customer",
"custom.email_customer": "huggy.chat.contact.custom.email_customer",
"custom.empresa_customer": "huggy.chat.contact.custom.empresa_customer"
},
"company": {
"id": "huggy.chat.company.id",
"name": "huggy.chat.company.name",
"email": "huggy.chat.company.email",
"created_at": "huggy.chat.company.created_at",
"phone": "huggy.chat.company.phone"
},
"agent": {
"id": "huggy.chat.agent.id",
"name": "huggy.chat.agent.name",
"email": "huggy.chat.agent.email",
"created_at": "huggy.chat.agent.created_at",
"phone": "huggy.chat.agent.phone"
},
"queue_position": "huggy.chat.queue_position",
"workflow_id": "huggy.chat.workflow_id",
"workflow_step_id": "huggy.chat.workflow_step_id",
"url": "huggy.chat.url",
"channel_type": "huggy.chat.channel_type",
"contact_last_message": "huggy.chat.contact_last_message",
"chat_last_message": "huggy.chat.chat_last_message",
"current_message": "huggy.chat.current_message",
"tags": "huggy.chat.tags"
}
}
},
"variables_settings": [],
"hasFlows": true
}
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
# POST/projects
# Create a project
Create a project passing in the request body the attribute name
and its respective value.
# Body parameters
Parameter | Type | Description |
---|---|---|
name | string | Project name that will be created |
Project name that will be created
# Requested example
{
"name": "Electronics"
}
2
3
# Response 200
{
"project": {
"id": "487742",
"companyID": "15691",
"name": "Electronics",
"createdBy": "39708",
"status": 1,
"createdAt": "2019-06-18 11:03:38",
"updatedAt": "2019-06-18 11:03:38",
"variables": {
"Flows do projeto": [],
"huggy": {
"time_hello": "huggy.time_hello",
"chat": {
"id": "huggy.chat.id",
"created_at": "huggy.chat.created_at",
"department": {
"id": "huggy.chat.department.id",
"name": "huggy.chat.department.name",
"order": "huggy.chat.department.order"
},
"tabulation": {
"id": "huggy.chat.tabulation.id",
"name": "huggy.chat.tabulation.name"
},
"contact": {
"id": "huggy.chat.contact.id",
"name": "huggy.chat.contact.name",
"created_at": "huggy.chat.contact.created_at",
"first_name": "huggy.chat.contact.first_name",
"second_name": "huggy.chat.contact.second_name",
"mobile": "huggy.chat.contact.mobile",
"email": "huggy.chat.contact.email",
"organization": {
"id": "huggy.chat.contact.organization.id",
"name": "huggy.chat.contact.organization.name",
"description": "huggy.chat.contact.organization.description"
}
},
"company": {
"id": "huggy.chat.company.id",
"name": "huggy.chat.company.name",
"created_at": "huggy.chat.company.created_at",
"phone": "huggy.chat.company.phone"
},
"agent": {
"id": "huggy.chat.agent.id",
"name": "huggy.chat.agent.name",
"email": "huggy.chat.agent.email",
"created_at": "huggy.chat.agent.created_at",
"phone": "huggy.chat.agent.phone"
},
"queue_position": "huggy.chat.queue_position",
"workflow_id": "huggy.chat.workflow_id",
"workflow_step_id": "huggy.chat.workflow_step_id",
"url": "huggy.chat.url",
"channel_type": "huggy.chat.channel_type",
"current_message": "huggy.chat.current_message"
}
}
},
"variables_settings": [],
"hasFlows": 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
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
# PUT/projects/{id}
# Update the project name
Update the project name passing in the request body the attribute name and its respective value.
Parameter | Type | Description |
---|---|---|
name | string | Project ID |
Project ID
# Body parameters
Parameter | Type | Description |
---|---|---|
name | string | New name to project |
New name to project
# Requested example
{
"name": "Electronics"
}
2
3
# Response 200
{
"project": {
"id": "487704",
"companyID": "15691",
"name": "Visitor",
"createdBy": "39708",
"status": 1,
"createdAt": "2019-06-16 22:04:19",
"updatedAt": "2019-06-18 11:04:46",
"variables": {
"Flows do projeto": [],
"huggy": {
"time_hello": "huggy.time_hello",
"chat": {
"id": "huggy.chat.id",
"created_at": "huggy.chat.created_at",
"department": {
"id": "huggy.chat.department.id",
"name": "huggy.chat.department.name",
"order": "huggy.chat.department.order"
},
"tabulation": {
"id": "huggy.chat.tabulation.id",
"name": "huggy.chat.tabulation.name"
},
"contact": {
"id": "huggy.chat.contact.id",
"name": "huggy.chat.contact.name",
"created_at": "huggy.chat.contact.created_at",
"first_name": "huggy.chat.contact.first_name",
"second_name": "huggy.chat.contact.second_name",
"mobile": "huggy.chat.contact.mobile",
"email": "huggy.chat.contact.email",
"organization": {
"id": "huggy.chat.contact.organization.id",
"name": "huggy.chat.contact.organization.name",
"description": "huggy.chat.contact.organization.description"
}
},
"company": {
"id": "huggy.chat.company.id",
"name": "huggy.chat.company.name",
"created_at": "huggy.chat.company.created_at",
"phone": "huggy.chat.company.phone"
},
"agent": {
"id": "huggy.chat.agent.id",
"name": "huggy.chat.agent.name",
"email": "huggy.chat.agent.email",
"created_at": "huggy.chat.agent.created_at",
"phone": "huggy.chat.agent.phone"
},
"queue_position": "huggy.chat.queue_position",
"workflow_id": "huggy.chat.workflow_id",
"workflow_step_id": "huggy.chat.workflow_step_id",
"url": "huggy.chat.url",
"channel_type": "huggy.chat.channel_type",
"current_message": "huggy.chat.current_message"
}
}
},
"variables_settings": [],
"hasFlows": true
}
}
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
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# DELETE/projects/{id}
# Delete a project
Delete a project by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Project ID |
Project ID
# Response 200
{
"status": true
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# GET/projects/{id}/flows
# View all project flows
Get the list of all project flows and its configured actions.
Parameter | Type | Description |
---|---|---|
id | integer | Project ID |
Project ID
# Response 200
[
{
"id": "67356",
"token": "bd8868c5-f816-460b-ab25-631ea0696f10",
"description": "segunda via boleto",
"createdAt": "2020-03-24 10:36:24",
"updatedAt": "2020-03-24 10:36:24",
"status": "1",
"companyID": "1",
"createdBy": null,
"importStatus": "0",
"projectID": "497786",
"importedBy": null,
"deletedBy": null,
"deletedAt": null,
"actions": [],
"variables": []
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# GET/projects/{projectId}/flows/{flowId}
# View a flow
Get the flow data by its ID
.
Parameter | Type | Description | |
---|---|---|---|
projectId | integer | Project ID | optional |
flowId | integer | Flow ID |
Project ID
Flow ID
# Response 200
{
"id": "30124",
"token": "dfd5a68d-31d4-4261-b659-e5b4c9b26a53",
"description": "Welcome",
"createdAt": "2019-06-16 20:58:43",
"updatedAt": "2019-06-18 06:57:46",
"status": "1",
"companyID": "15691",
"createdBy": null,
"importStatus": "0",
"projectID": "487703",
"importedBy": null,
"actions": [
{
"id": "101122",
"type": "huggy.action.send.message",
"value": "{\"content\":[\"Ol\\u00e1! Welcome to our website.\\n\",\"Would you like to talk to one of our attendants?\\n\",\"Ol\\u00e1!Welcome to our website.\"],\"typing\":false,\"content_type\":\"0\"}",
"order": "0",
"createdAt": "2019-06-16 21:56:03",
"updatedAt": "2019-06-18 06:57:46",
"status": "1",
"companyID": "15691",
"automationFlowID": "30124",
"label": "APP_LABEL_ACTION_SEND_MESSAGE",
"fullValue": {
"content": [
"Hello! Welcome to our website.\n",
"Would you like to talk to one of our attendants?\n", "Hello! Welcome to our website."
],
"type": {
"type": "0"
},
"typing": false,
"index": 1
}
},
{
"id": "101123",
"type": "huggy.action.send.message",
"value": "{\"content\":[\"Would you like to talk to one of our attendants?\"],\"typing\":false,\"content_type\":\"0\"}",
"order": "1",
"createdAt": "2019-06-16 21:56:03",
"updatedAt": "2019-06-18 06:57:46",
"status": "1",
"companyID": "15691",
"automationFlowID": "30124",
"label": "APP_LABEL_ACTION_SEND_MESSAGE",
"fullValue": {
"content": [
"Would you like to talk to one of our attendants?"
],
"type": {
"type": "0"
},
"typing": false,
"index": 0
}
},
{
"id": "101766",
"type": "huggy.action.conditional",
"value": "{\"action\":{\"type\":\"huggy.action.transfer.to.agent\",\"label\":\"APP_LABEL_ACTION_TRANSFER_TO_AGENT\",\"id\":\"\",\"companyID\":15691,\"value\":39704,\"fullValue\":[],\"order\":0},\"conditions\":[{\"type\":\"huggy.conditional.variable\",\"operator\":\"=\",\"value\":{\"key\":\"pTransfAgent\",\"value\":\"SIM\",\"customVariable\":true}}]}",
"order": "2",
"createdAt": "2019-06-18 06:57:46",
"updatedAt": "2019-06-18 06:57:46",
"status": "1",
"companyID": "15691",
"automationFlowID": "30124",
"label": "APP_LABEL_ACTION_CONDITIONAL",
"fullValue": {
"id": "39704",
"name": "Aguiar",
"login": "carlos@teste.com",
"status": "1",
"companyID": "15333",
"photoLink": null,
"gender": "0",
"birthDate": null,
"email": "Charles@test.com",
"createdAt": "2019-05-26 17:48:14",
"updatedAt": "2019-06-09 08:08:47",
"whatsappID": "5488902",
"maxChats": "1000",
"perfilID": "3",
"welcomeText": null,
"departmentsAccess": "1",
"viewedUpdates": "1",
"statusID": null,
"pushToken": null,
"osDevice": null,
"signatureEmail": null,
"autoLogin": null,
"autoDistribution": "0",
"lastAutoChatAt": null,
"active": "1",
"layoutType": "1",
"blocked": 0,
"office": "Outro",
"confirmedEmail": "1",
"confirmEmailAlert": "",
"perfilName": "Administrator",
"photo_small": "https://c.pzw.io/img/avatar-user-boy.jpg",
"image_small": "https://c.pzw.io/img/avatar-user-boy.jpg",
"number": "5575999999999",
"type": 1,
"isActive": true,
"isAvailable": false,
"isOnline": false,
"lastSeen": "2019-05-26 17:47:14",
"isGuest": ""
}
}
],
"variables": []
}
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# POST/projects/{id}/flows
# Create a flow
Pass in the query parameter the project ID and in the request body the attribute description
so that the flow will be created.
Parameter | Type | Description |
---|---|---|
id | integer | Project ID |
Project ID
# Body parameters
Parameter | Type | Description |
---|---|---|
description | string | Flow description to be created |
Flow description to be created
# Requested example
{
"description": "tracking"
}
2
3
# Response 200
{
"id": "30358",
"token": "63cb5ca6-9069-4144-a241-4df582af3b6e",
"description": "Tracking",
"createdAt": null,
"updatedAt": null,
"status": null,
"companyID": 15691,
"createdBy": null,
"importStatus": null,
"projectID": 487759,
"importedBy": null,
"actions": [],
"variables": []
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# PUT/projects/{projectId}/flows/{flowId}
# Update a flow
Update the flow description.
Parameter | Type | Description |
---|---|---|
projectId | integer | Project ID |
flowId | integer | Project flow number |
Project ID
Project flow number
# Body parameters
Parameter | Type | Description |
---|---|---|
description | integer | The new description flow |
The new description flow
# Requested example
{
"description": "New description"
}
2
3
# Response 200
{
"id": "30320",
"token": "92e5f207-daee-4571-af39-34f935024128",
"description": "new description",
"createdAt": "2019-06-18 11:46:59",
"updatedAt": "2019-06-25 08:59:19",
"status": "1",
"companyID": "15691",
"createdBy": null,
"importStatus": "0",
"projectID": "487703",
"importedBy": null,
"actions": [],
"variables": []
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# DELETE/projects/{projectsId}/flows/{flowId}
# Delete a flow
Delete a flow by its ID.
Note: It doesn’t possible to delete a flow in use.
Parameter | Type | Description |
---|---|---|
projectId | integer | Project ID |
flowId | integer | Flow ID |
Project ID
Flow ID
# Response 204
{
Successful request with empty body
}
2
3
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# Organizations
# GET/organizations
# View all organizations
View a list of all organizations registered in Huggy platform.
# Response 200
[
{
"id": "19706",
"name": "hankmark",
"cnpj": null,
"ie": null,
"address": null,
"state": null,
"city": null,
"country": null,
"district": null,
"zipCode": null,
"createdAt": "2019-06-26 11:27:12",
"updatedAt": "2019-06-26 11:27:12",
"companyID": "15691",
"status": "1",
"description": "shoe distributor",
"observation": null,
"domains": "henkmark.com",
"phone": "5575999999999",
"photo": null,
"nameEmoji": "hankmark",
"customFields": []
},
{
"id": "19704",
"name": "Huggy",
"cnpj": null,
"ie": null,
"address": null,
"state": null,
"city": null,
"country": null,
"district": null,
"zipCode": null,
"createdAt": "2019-06-26 11:22:54",
"updatedAt": "2019-06-26 11:22:54",
"companyID": "15691",
"status": "1",
"description": "Digital attendance",
"observation": null,
"domains": "huggy.io",
"phone": "75999999999",
"photo": null,
"nameEmoji": "Huggy",
"customFields": []
},
{
"id": "19705",
"name": "Huggy",
"cnpj": null,
"ie": null,
"address": null,
"state": null,
"city": null,
"country": null,
"district": null,
"zipCode": null,
"createdAt": "2019-06-26 11:25:57",
"updatedAt": "2019-06-26 11:25:57",
"companyID": "15691",
"status": "1",
"description": "Digital Attendance",
"observation": null,
"domains": "testhuggy.com",
"phone": "75999999999",
"photo": null,
"nameEmoji": "Huggy",
"customFields": []
}
]
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
# POST/organizations
# Create a new organization
Create a new organization in Huggy platform. Pass in the request body the attribute name with its respective value.
# Body parameters
Parameter | Type | Description |
---|---|---|
name | string | Organization name |
Organization name
# Requested example
{
"name": "Huggy"
}
2
3
# Response 200
{
"id": "18711",
"name": "Huggy",
"cnpj": null,
"ie": null,
"address": null,
"state": null,
"city": null,
"country": null,
"district": null,
"zipCode": null,
"createdAt": null,
"updatedAt": null,
"companyID": "11721",
"status": 1,
"description": null,
"observation": null,
"domains": null,
"phone": null,
"photo": null,
"nameEmoji": "Huggy",
"customFields": []
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Response 400
{
"reason": "This message will inform what caused the error"
}
2
3
# PUT/organizations/{Id}
# Update a organization
Update the organization name.
Parameter | Type | Description |
---|---|---|
id | integer | Organization ID |
Organization ID
# Body parameters
Parameter | Type | Description |
---|---|---|
name | string | New organization name |
New organization name
# Requested example
{
"name": "Huggy"
}
2
3
# Response 200
{
"id": "18697",
"name": "Huggy",
"cnpj": null,
"ie": null,
"address": null,
"state": null,
"city": null,
"country": null,
"district": null,
"zipCode": null,
"createdAt": null,
"updatedAt": null,
"companyID": "11721",
"status": 1,
"description": null,
"observation": null,
"domains": null,
"phone": null,
"photo": null,
"nameEmoji": "Huggy",
"customFields": []
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
# DELETE/organizations/{Id}
# Delete a organization
Delete a organization by its ID
.
Parameter | Type | Description |
---|---|---|
id | integer | Organization ID |
Organization ID
# Response 204
Successful request with empty body
# Response 404
{
"reason": "This message will show that doesn't exist result for your search"
}
2
3
4
# Companies
# GET/companies
# View all companies
Get the list of all agent companies.
Note: The access token in the API belong to the agent. Therefore, the listed companies at this endpoint match the companies of the token owner.
# Response 200
[
{
"id": 15691,
"name": "Huggy"
},
{
"id": 15693,
"name": "Hank"
}
]
2
3
4
5
6
7
8
9
10