API v3

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

Nossa API nativamente suporta o formato:

  • REST

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

Autenticação

Autenticação via painel Huggy

Para que a API seja ativada, será necessário adicionar um aplicativo na sessão Developers no painel Huggy e realizar uma autenticação através de uma estrutura de autorização para concessão de acesso à API, OAuth2.0. A criação do aplicativo disponibilizará acesso as credenciais OAuth que consistem em client_id e client_secret, as quais possibilitarão a geração do token de acesso à API.

Sessões do aplicativo

Informações Básicas
Informações Básicas Nessa sessão, você poderá configurar um Nome e uma Descrição para seu aplicativo, ambos poderão ser atualizados a qualquer momento.


Autenticação OAuth 2.0

Autenticação OAuth 2.0
Nessa sessão você poderá configurar uma url de callback e visualizar o client_id e o client_secret que foram gerados automaticamente a partir do momento que você criou o aplicativo na plataforma Huggy.


Endereço de entrega

  • url de callback
    • Consiste em um endereço de entrega que será utilizado para que a Huggy possa devolver ao seu aplicativo a autorização solicitada.

Credenciais OAuth

  • client_id
    • ID do aplicativo do cliente. Trata-se de como a API irá identificar a aplicação.
  • client_secret
    • Conhecido e utilizado somente pelo aplicativo e pelo servidor de autorização.

Fluxo de autenticação

Passo 1:

  • Criar um aplicativo na plataforma Huggy

Passo 2:

  • Substituir os parâmetros da url abaixo.
    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: Define o escopo de acesso à API (recursos);
    • response_type: Tipo de resposta esperada. Código enviado à url de callback;
    • redirect_uri: URL de callback configurada no aplicativo;
    • client_id: ID do aplicativo;

Passo 3:

  • Estando com o usuário logado na plataforma Huggy, acessar a url com as informações descritas no passo anterior. Se todos os passos até aqui forem contemplados, então a interface de autorização de uso lhe será apresentada.

Autenticação OAuth 2.0

Passo 4:

  • Conceder permissão de uso do aplicativo

Passo 5:

  • Após clicar em Autorizar uso, enviaremos o code para a url de callback:
  https://nomedoapp.org/auth/callback?code=def50200a66869346ba8d24820a1ed96e267d3518a65d27efe179ab73f1c8e50a0ba7f860b763534eaeec5c895ca7efaf49aa7b5160ab33545c18c59d8672e9d0ae8f98a0b81aaae9b741c8536839dbbb4d2864d08f11d5faeea10bec7a4eba32b3e07c343e6031c280f73d97d1dfd92ec0bfe3a84e6ffb62d18991b21c5825c1ef4c4e2dd0c92550d70aa11184b6f1e7004c09f54826ca47cf42c1065efd0e680e8857909d64e991258e41981858d08bc5e9e70866ec7ab67e500a7af3d84835cbc7a6ca33fc38e782050b62e5af3b280368315bf3dd3c234bffa986426a6eed2efa922e932d9579721e6dc1c3a5e74d949773a3eaaaa596be289d129cb81b62690ba32166b2d54c0725ad510g99f7df41c9edc701e1d60ffed375319dee886287030e6d3f4d0983b4211a4b74d82ff3349f5027eee16bca259e4b5ba88123a4e68e5ce4fad77e3ecd558036271bw566ebe4b5cc0baa1e05bb6c0c5a1d0420ab2bcc3e96396b9b58dc63a345732dcc8246dba3ac5c687eb6981882d37fc84e2e9bc88e8a88f795b6cb7f2dc89d97c0c31b37d207c3b45571e2bc39afb412929485f7a84f485daaae4a7
1

Nota: O code enviado para a url de callback só poderá ser utilizado uma vez. Caso você precise gerar novamente o access_token, o passo 2 dessa documentação deverá ser repetido.

Passo 6:

  • Em posse do code, uma requisição deve ser feita para a extração do access_token e o refresh_token, conforme o modelo a seguir:
POST https://auth.huggy.app/oauth/access_token

Request parameters

ParameterTypeExemploDescription
grant_typestringauthorization_codeIsso informa ao terminal do token que o aplicativo está usando o tipo de concessão Código de Autorização OAuth.
redirect_uristringhttps://nomedoapp.org/auth/callbackURL de callback utilizada para o recebimento do token
client_idstringAPP-bafb4727-c1fe-47af-8cd7-9f43c1a87767ID do aplicativo do cliente
client_secretstring52f9fc0d-daa5-4238-bg36-2rb63db54eebConhecido e utilizado somente pelo aplicativo e o servidor de autorização
codestringdef50200fb4b3a43e7647589...Code enviado para a url de callback. Garante a autenticidade do cliente e controle de acesso ao token
grant_type
string

Exemplo: authorization_code

Isso informa ao terminal do token que o aplicativo está usando o tipo de concessão Código de Autorização OAuth.


redirect_uri
string

Exemplo: https://nomedoapp.org/auth/callback

URL de callback utilizada para o recebimento do token


client_id
string

Exemplo: APP-bafb4727-c1fe-47af-8cd7-9f43c1a87767

ID do aplicativo do cliente


client_secret
string

Exemplo: 52f9fc0d-daa5-4238-bg36-2rb63db54eeb

Conhecido e utilizado somente pelo aplicativo e o servidor de autorização


code
string

Exemplo: def50200fb4b3a43e7647589...

Code enviado para a url de callback. Garante a autenticidade do cliente e controle de acesso ao token


Request example

{
	 "grant_type": "authorization_code",
	 "redirect_uri": "https://nomedoapp.org/auth/callback",
	 "client_id": "APP-bafb4727-c1fe-47af-8cd7-9f43c1a87767",
	 "client_secret": "52f9fc0d-daa5-4238-bg36-2rb63db54eeb",
     "code": "def50200fb4b3a43e7b4d2513ae2db4c14a444cbded99f2fbb29e6f0d3d10bfad6c452548252c01ee4060c2ac6c689dab0d8f37664e682d6e275d5c065dad88c219d2bff4d872f2df440736f0919d1420ad05cecd588749a6a375b51790f706fe16e1685100f433d7fbbe464296dd491f0b767e5c934723162fb58aa22f835a2ed37ca60f8dfec57fce7a4bd5d98e3526610796d4b868586f3672636a53b7df771e9c528c51a11a582c5518f72267f94747b7b9bca367add990847dd0d6a07f97f3377c0f80f97736fffde33fb9124524a81c0d27c6877ac6d03b0d00b46f5758c6ba35baadba3766d01cfac5bb0213dc5115cde5645c9a8f0f385893061ff8247c0d222d7f5941795b8332e17b06c0f34c2744056718954eb3d63a60bc5836909c3b314a8ad8ca16d481b126a1971c552153b25aba5087385a3c42c1b60297ba7d86cd81ceab72bb05fe0f5cb767ceb229a7d239c2c2ae8cda7513b6f7230c2ffbc17a82f53297348399ef29527a2a3b138a1da64eae320e0eedb56e11f9c894f057cfd68fc5b0015b8493bd988a810c7b91836e9539df92398bb0c4de66b749747f09f2240a3d24e27"
}
1
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"
}
1
2
3
4
5
6

Nota: O access_token possui um prazo de validade de seis meses.


Atualizando o token.

Caso seu token tenha expirado, a atualização poderá ser feita mediante o access_token e o refresh_token, como demonstrado:

POST https://auth.huggy.app/oauth/access_token
ParameterTypeDescription
access_tokenstringToken expirado
access_token
string

Token expirado


Body parameters

ParameterTypeExemploDescription
grant_typestringrefresh_tokenIsso informa ao terminal do token que o aplicativo está usando o tipo de concessão para atualização de um Token expirado.
client_idstringAPP-bafb4727-c1fe-47af-8cd7-9f43c1a87767ID do aplicativo do cliente
client_secretstring52f9fc0d-daa5-4238-bg36-2rb63db54eebConhecido e utilizado somente pelo aplicativo e o servidor de autorização
refresh_tokenstringdef50200fb4b3a43e7647589...Codigo de atualização para um token expirado
grant_type
string

Exemplo: refresh_token

Isso informa ao terminal do token que o aplicativo está usando o tipo de concessão para atualização de um Token expirado.


client_id
string

Exemplo: APP-bafb4727-c1fe-47af-8cd7-9f43c1a87767

ID do aplicativo do cliente


client_secret
string

Exemplo: 52f9fc0d-daa5-4238-bg36-2rb63db54eeb

Conhecido e utilizado somente pelo aplicativo e o servidor de autorização


refresh_token
string

Exemplo: def50200fb4b3a43e7647589...

Codigo de atualização para um token expirado


Request example

{
    "grant_type": "refresh_token",
    "client_id": "APP-2d6ea240-4c53-46e2-85c9-e3ced06e1c5d",
    "client_secret": "6c9daa24-ebf3-4f7f-90as-8ca086fae8e8",
    "refresh_token": "def50200408af6f3ed19ae9ab90ae2190ae199980dc1487eba8c30043bd7f7275b4beef4eca314ceca7368b7f52519139e9ad6cb5bd69383401fa8c6497559c0797ea4dd46dc0fb794fdefff479d8cce768208dfbdd93692939d6c44a8e6704b816babcd20796759c8bda4047cad7d1de5ba8a2e70742ff86e87963bd58caebc683f8c2d845a20be5b03273ff28819538af334995e5744163b9778404090b228cee51bf27c916eaecfd9c9aedf2bc7bfd8b9f8322b978cc5c18f6437bae1b4439db249609326960db6ef0dc7f4c57098d77d7f46ad95f274442e01a4eca126651efeca03af33c6e6c9c16dbd635867fb66564bede35fb7a4e750234bbbd4b13c450c19cc2d844cc6cee4c20177f4ad6bd159cc1eb2cc6dec0065bd8f324cbb19193e9344d4c1e75833ae2a8b0ba8c64cf46e1bc502a800b120dec82f9522f3667dcd1b9b0dfba5bed2c5e8e4fa6697e959d09b95f93b8347ee1e11b9b2d083a34e3a9d4bb3fda40e6f2e14edb3fc9f32215242f6d91e6197855fec8037237371e0b6ba5168563570e15223c52fbe887263676e98e9045e34b677a9b2fab191f23c6ecc28c210f5f4fcc741d1ceb"
}
1
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"
}
1
2
3
4
5
6

Nota: O Token atualizado tem um prazo de validade de 1 ano.

Headers

Todas as requisições também devem incluir os seguintes headers:

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

Idioma

Por padrão, quando não for informado o Accept-Language, todas as requisições serão respondidas em inglês. Para obter a resposta em um idioma preferido, no Header de sua requisição, informe:

  • Accept-Language: en
  • Accept-Language: pt-br
  • Accept-Language: es

Requisições

Por padrão, todas as chamadas à API assumem que a requisição em questão está sendo feita diretamente na company principal. Isto é: a primeira company que um agente foi vinculado. Se a requisição está sendo feita a uma company secundária, ela deverá assumir o modelo de URI https://api.huggy.app/v3/companies/{companieId}/recurso...

Response

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

Paginação

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

Respostas usuais do servidor:

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

Chats

GET/chats

Visualizar todos os chats

Este endpoint possui alguns parâmetros opcionais para obtermos os dados de um chat de acordo a sua situação. Para esse tipo de requisição, passe como parâmetro na URL o atributo agent, department, customer, situation ou status seguido da valor que deseja filtrar, como por exemplo:

ParameterTypeDescription
agentintegerID do agente
departmentintegerID do departamento
customerintegerID do cliente
situationstringVer valores
statusstringVer valores
agent
integer

ID do agente


department
integer

ID do departamento


customer
integer

ID do cliente


situation
string

Ver valores


status
string

Ver valores


Filtro de chats por canais

Os chats podem ser filtrados por canais através do parâmetro channel.

Os Canais podem ser:

  • whatsapp
  • telegram
  • messenger
  • email

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"
            }
        ]
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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}

Visualizar os detalhes de um chat

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

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


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": []
    },
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

Response 400

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

GET/chats/{id}/messages

Visualizar as mensagens de um chat

Obtém a mensagem de um chat específico a partir de seu ID. Essa requisição retornará as mensagens correspondentes a um chat. Portanto, ela poderá retornar uma ou mais mensagens.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


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"
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

messages.type

  • type
    • Utilizado para representar tipo de mensagem retornada no payload.
ValorDescription
textRepresenta uma mensagem de Texto
imageRepresenta um link para uma imagem
audioRepresenta uma mensagem de áudio
videoRepresenta um link para um vídeo
documentRepresenta um documento enviado pelo chat
emailRepresenta um endereço de email
smsRepresenta um sms
internalEventRepresenta a ocorrência de um evento interno. Por exemplo: Agente Y definiu departamento X
templateMessageRepresenta uma mensagem template quando esta é enviada no chat
text

Representa uma mensagem de Texto


image

Representa um link para uma imagem


audio

Representa uma mensagem de áudio


video

Representa um link para um vídeo


document

Representa um documento enviado pelo chat


email

Representa um endereço de email


sms

Representa um sms


internalEvent

Representa a ocorrência de um evento interno. Por exemplo: Agente Y definiu departamento X


templateMessage

Representa uma mensagem template quando esta é enviada no chat


Response 404

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

GET/chats/{id}/tags

Visualizar todas as tags do chat

Obtém a lista de tags adicionadas a um chat.

Nota: Tags são utilizadas para sintetizar o contexto de um atendimento e assim, ser possível mapeá-lo.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Response 200

[
    {
        "id": "304430",
        "name": "restrição"
    },
    {
        "id": "304431",
        "name": "bloqueio"
    }
]
1
2
3
4
5
6
7
8
9
10

Response 404

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

GET/chats/{id}/agents

Visualizar o ID de um agente

Obtém o Nome e o ID de um agente a partir do número ID do chat.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Response 200

[
    {
        "name": "Carlos",
        "id": 39704
    }
]
1
2
3
4
5
6

Response 400

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

POST/chats/{id}/messages

Adicionar nova mensagem em um chat

Adiciona um nova mensagem passando chave e valor no corpo de sua requisição. Uma nova mensagem só pode ser adicionada em um chat previamente criado.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Body parameter

ParameterTypeDescription
textstringMensagem enviada para o contato
filestringURL enviada para o contado contendo um arquivooptional
isInternalbooleanInforma se a mensagem é internaoptional
text
string

Mensagem enviada para o contato


file
string

URL enviada para o contado contendo um arquivo


isInternal
boolean

Informa se a mensagem é interna


Request example

{
    "text": "Olá, John!",
    "file": "https://c.pzw.io/img/avatar-user-boy.jpg",
    "isInternal": false
}
1
2
3
4
5

Tipos de arquivos permitidos

  • 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": "Olá, 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"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

Response 400

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

Response 404

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

POST/chats/{id}/transfer

Transferir um chat para outro agente

Transfere um chat para outro agente. A resposta esperada contém um customerID e o chatID que o agente foi transferido.

Nota: O agente, o qual receberá o chat transferido, visualizará a mensagem enviada na requisição, em seu painel de atendimento.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Body parameter

ParameterTypeDescription
agentIdintegerIdentificador do agente
messagestringMensagem enviada ao agente junto à transferênciaoptional
agentId
integer

Identificador do agente


message
string

Mensagem enviada ao agente junto à transferência


Request example

{
  "agentId": 39607,
  "message": "Olá, segue o atendimento do nosso cliente Emanoel"
}
1
2
3
4

Response 200

{
    "customerId": "7356074",
    "id": 17656128
}
1
2
3
4

Response 404

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

PUT/chats/{id}/agent

Adicionar um agente

Adiciona um agente ao chat.

Nota: Um agente convidado não pode adicionar outros agentes. Se essa requisição for solicitada, um status 400 será retornado.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Body parameter

ParameterTypeDescription
agentIdintegerIdentificador do agente
agentId
integer

Identificador do agente


{
  "agentId": 39607
}
1
2
3

Response 200

Requisição bem sucedida com o body vazio
1

Response 400

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

PUT/chats/{id}/read

Marcar mensagem como lida

Marca leitura na mensagem do chat informado. Um ID será requerido para isso.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Response 200

Requisição bem sucedida com o body vazio
1

Response 403

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

Response 404

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

PUT/chats/{id}/tags

Atualizar tags do chat

Esta ação permite realizar alterações nas tags de um chat específico, atualizando-as, modificando seu valor original. Para isso, informe no parâmetro da requisição o ID do chat e no corpo da requisição os valores das tags.

Nota: Cada valor será passado para a chave tags como uma array contendo o nome de cada uma das tags separados por vírgula. O número de tags que se deseja alterar pode ser superior ao número de tags existentes para o chat em questão. Neste caso, uma ou mais tags aparecerão vinculadas ao chat em questão. Isso é possível porque a alteração é feita em um array que poderá ter seus indices atualizados ou novos adicionados, caso seja passado uma quantidade de tags superior ao existente.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Body parameter

ParameterTypeDescription
tagsstringString contendo tags de marcação para o chat
tags
string

String contendo tags de marcação para o chat


Request example

{
	"tags": "tag4, tag5, tag6"
}
1
2
3

Response 200

Requisição bem sucedida com o body vazio
1

Response 404

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

PUT/chats/{id}/queue

Mover para a fila

Move um chat para a fila.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Response 200

Requisição bem sucedida com o body vazio
1

Response 404

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

PUT/chats/{id}/department

Atribuir um departamento ao chat

Atribui um departamento a um chat. Para isso, informe o ID de um chat válido e informe no corpo da requisição o número do departamento que será atribuído.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Body parameter

ParameterTypeDescription
departmentintegerNúmero do departamento que se deseja atribuir ao chat
department
integer

Número do departamento que se deseja atribuir ao chat


Response 200

Requisição bem sucedida com o body vazio
1

Response 404

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

PUT/chats/{id}/close

Fechar um chat

Fecha um chat, passando seu ID como parâmetro na requisição.

Nota: Opcionalmente você poderá fechar um chat utilizando uma tabulação e/ou uma mensagem de agradecimento, enviando estes parâmetros no corpo da requisição. O parâmetro sendFeedback quando definido como true, habilita o envio de uma mensagem de agradecimento após a finalização do chat, caso essa mensagem esteja configurada no painel Huggy.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Body parameter

ParameterTypeDescription
tabulationintegerNúmero da tabulaçãooptional
commentstringComentário a ser enviadooptional
sendFeedbackbooleanMensagem de agradecimentooptional
tabulation
integer

Número da tabulação


comment
string

Comentário a ser enviado


sendFeedback
boolean

Mensagem de agradecimento


Request example

{
	"tabulation": "12484",
	"comment": "comentário através da API",
    "sendFeedback": true
}
1
2
3
4
5

Response 200

Requisição bem sucedida com o body vazio
1

Response 404

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

PUT/chats/{id}/reopen

Reabrir um chat

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

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Response 200

Requisição bem sucedida com o body vazio
1

Response 404

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

DELETE/chats/{id}

Excluir um chat

Exclui um chat a partir do seu ID.

Nota: Somente um Administrador possui permissão para excluir um chat. Um chat só poderá ser excluído quando estiver com o status finalizado.

ParameterTypeDescription
idintegerIdentificador do chat
id
integer

Identificador do chat


Response 400

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

Response 404

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

Agentes

GET/agents

Visualizar todos os agentes

Obtém informações de todos os agentes cadastrados.

Nota: Este recurso possui um parâmetro opcional que retorna todos os registros encontrados, isto é: o total de registros em uma ou mais páginas.

ParameterTypeDescription
allPagesbooleanParâmetro que retornará todos os registros se seu valor for verdadeiro
allPages
boolean

Parâmetro que retornará todos os registros se seu valor for verdadeiro


Response 200

[
    {
        "id": 39708,
        "name": "Kivya",
        "email": "teste@teste.com",
        "photo_url": null,
        "phone": "5575999999999"
    },
    {
        "id": 39704,
        "name": "Carlos",
        "email": "teste@teste.com",
        "photo_url": null,
        "phone": "5575999999999"
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

GET/agents/profile

Visualizar o perfil do agente

Obtém os dados do perfil do agente logado na plataforma Huggy.

Nota: O perfil a ser exibido, corresponde ao do token do usuário logado na plataforma.

Response 200

{
    "id": 39704,
    "roleID": "3",
    "companyID": "15333",
    "name": "Carlos",
    "email": "teste@teste.com",
    "photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
    "createdAt": "2019-05-26 17:48:14"
}
1
2
3
4
5
6
7
8
9

GET/agents/{id}

Visualizar dados de um agente

Obtém os dados de um agente específico. O ID do agente é requerido no parâmetro da requisição.

ParameterTypeDescription
idintegerIdentificador do agente
id
integer

Identificador do agente


Response 200

{
    "id": "39708",
    "name": "kivya",
    "login": "kivya@teste.com",
    "status": false,
    "companyID": "15333",
    "photoLink": null,
    "gender": "0",
    "birthDate": null,
    "email": "teste@teste.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": "Administrador",
    "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": "Convidado"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

Response 404

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

GET/agents/{id}/status

Visualizar o status do agente

Obtém o status de um agent a partir de seu ID

ParameterTypeDescription
idintegerIdentificador do agente
id
integer

Identificador do agente


Response 200

{
    "id": null,
    "name": "Unavailable",
    "message": null,
    "type": 0,
    "createdAt": null,
    "updatedAt": null,
    "agentID": 34146,
    "available": false
}
1
2
3
4
5
6
7
8
9
10

Response 404

{
   "reason": "This message will show that doesn't exist result for your search."
}
1
2
3

POST/agents

Convidar um novo agente

Para convidar um novo agente, existem três atributos obrigatórios que devem ser passados no corpo da requisição, são eles: email, maxChats e type. Um agente é definido pelo seu perfil de acesso, sendo este representado pela atributo type que recebe um valor numérico, onde:

Nota: Um novo agente só será exibido no painel Huggy após aceitar o convite enviado por email.

DefiniçãoTypeChaveValor
AgentintegerType1
GerenteintegerType2
AdministradorintegerType3
Agent
integer

Type

1


Gerente
integer

Type

2


Administrador
integer

Type

3


Body parameter

ParameterTypeDescription
emailstringEndereço de e-mail do agente
maxChatsintegerQuantidade máxima de chats definida para o novo agente
typeintegerIdentificador do perfil de acesso do agente
email
string

Endereço de e-mail do agente


maxChats
integer

Quantidade máxima de chats definida para o novo agente


type
integer

Identificador do perfil de acesso do agente


Request example

{
    "email": "charles@test.com",
    "maxChats": 50,
    "type": 1
}
1
2
3
4
5

Response 400

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

Response 500

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

PUT/agents/status

Atualizar o status do agente

Por padrão, um agente possui duas opções de status, tornando ele acessível ou não. Para atualizar o status de um agente, uma propriedade ID deve ser passada no corpo da requisição com um valor numérico que torne o agente Disponível 0 ou Indisponível -1.

ParameterTypeDescription
idintegerIdentificador do agente
id
integer

Identificador do agente


Body parameter

ParameterTypeExemploDescription
idinteger0 | -1Determina o status do agente
id
integer

Exemplo: 0 | -1

Determina o status do agente


Request example

    "id": 0
1

Response 200

{
    "statusId": null,
    "available": true
}
1
2
3
4

Response 400

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

PUT/agents/{id}

Atualizar um agente

Atualiza as informações de um agente. Algumas informações são obrigatórias, tais como: name e login ou name e email.

ParameterTypeDescription
idintegerIdentificador do agente
id
integer

Identificador do agente


Body parameter

ParameterTypeDescription
namestringNome do Agente
loginstringEndereço de e-mail do agente
phonestringNúmero de telefone do agente
name
string

Nome do Agente


login
string

Endereço de e-mail do agente


phone
string

Número de telefone do agente


Request example

{
  "name": "John Doe",
  "login": "teste2@doe.com",
  "phone": 557599999999
}
1
2
3
4
5

Response 200

Requisição bem sucedida com o body vazio
1

Response 400

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

Contatos

GET/contacts

Visualizar todos os contatos

Obtém os dados de todos os contatos cadastrados.

Response 200

[
    {
        "id": "7662964",
        "whatsappID": "5560493",
        "name": "Charles",
        "companyID": "15333",
        "email": "teste@teste.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 teste@teste.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,
            "telegram": true,
            "whatsapp": false,
            "email": true,
            "sms": true,
            "telegramBot": false,
            "whatsappApi": 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": "teste@teste.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 teste@teste.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,
            "telegram": true,
            "whatsapp": false,
            "email": true,
            "sms": true,
            "telegramBot": false,
            "whatsappApi": false
        },
        "customFields": [],
        "custom_fields": [],
        "number": "75999999999",
        "type": 2,
        "isEditable": true,
        "messengerId": null,
        "groups": [],
        "organizations": [],
        "organization": false,
        "parent": null,
        "links": []
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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}

Visualizar um contato

Obtém os dados de um contato específico a partir de seu ID.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Identificador do contato


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,
        "telegram": false,
        "whatsapp": false,
        "email": false,
        "sms": false,
        "telegramBot": false,
        "whatsappApi": false
    },
    "customFields": [],
    "custom_fields": [],
    "number": null,
    "type": 2,
    "isEditable": true,
    "messengerId": null,
    "groups": [],
    "organizations": [],
    "organization": false,
    "parent": null,
    "links": []
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

Response 404

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

GET/contacts/{id}/timeline

Visualizar a timeline de um contato

Obtém os dados da timeline de um contato a partir do seu ID. Os dados da timeline são dados da criação do contato e de todos os eventos associados a ele a partir daí.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Identificador do contato


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": "Um atendimento foi iniciado pelo cliente no canal E-mail.",
        "title": "Chat iniciado",
        "time": "07/07/2019 09:12:28",
        "photo": "https://c.pzw.io/img/avatar-user-boy.jpg",
        "name": "Salomão",
        "type": "chat.created",
        "channel": "email",
        "department": null,
        "duration": null,
        "situation": "in_chat",
        "chatID": "19378164",
        "deleted": false
    },
    {
        "icon": "user",
        "text": "O contato Salomão foi criado",
        "title": "Contato criado",
        "time": "07/07/2019 09:12:15",
        "photo": "",
        "name": ""
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

Response 404

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

GET/contacts/{id}/groups

Visualizar o grupo do contato

Obtém os dados do grupo ao qual o contato pertence.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Identificador do contato


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"
    }
]
1
2
3
4
5
6
7
8
9
10
11

Response 400

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

GET/contacts/{id}/organizations

Visualizar a organização do contato

Obtém os dados da organização a qual o contato pertence.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Identificador do contato


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": "Tecnologia",
        "observation": null,
        "domains": "huggy.io",
        "phone": "7533333333",
        "photo": null,
        "nameEmoji": "Huggy",
        "customFields": []
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

Response 404

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

GET/contacts/{id}/customFields

Visualizar um campo personalizado

Obtém os dados de um campo personalizado criado previamente para a utilização de informações adicionais no cadastro do contato.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Identificador do contato


Response 200

[
    {
        "id": "487",
        "companyID": "12025",
        "name": "email alternativo",
        "description": "segunda opção de 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": "email_alternativo_customer",
        "inputType": "input",
        "value": "alternativetest@test.com"
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Response 404

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

GET/contacts/{id}/linkedContacts

Visualizar associação de contatos

Obtém os dados do contato associado. A associação define que um contato pode ser considerado contato principal de outro contato.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Identificador do contato


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,
            "telegram": true,
            "whatsapp": false,
            "email": true,
            "sms": true,
            "telegramBot": false,
            "whatsappApi": 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"
            }
        ]
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68

Response 404

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

POST/contacts

Criar contato

Para criar um novo contato, name e email serão requeridos

Body parameter

ParameterTypeDescription
namestringNome do contato
namestringE-mail do contato
name
string

Nome do contato


name
string

E-mail do contato


Request example

{
  "name": "Charles Edware",
  "email": "teste3@teste.com"
}
1
2
3
4

Response 201

{
    "id": "7663175",
    "whatsappID": null,
    "name": "Edward",
    "companyID": "15333",
    "email": "teste@teste.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,
        "telegram": false,
        "whatsapp": false,
        "email": true,
        "sms": false,
        "telegramBot": false,
        "whatsappApi": false
    },
    "customFields": [],
    "custom_fields": [],
    "number": null,
    "type": 2,
    "isEditable": true,
    "messengerId": null,
    "groups": [],
    "organizations": [],
    "organization": false,
    "parent": null,
    "links": []
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

Response 400

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

POST/timeline/createComment/{id}

Criar comentário na linha do tempo

Cria um comentário na linha do tempo do contato a partir de seu ID. Comentários contribuem para relatar atividades com o cliente, construindo assim um histórico de seus atendimentos.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Identificador do contato


Body parameter

ParameterTypeDescription
commentstringComentário que ficará registrado no painel do contato
comment
string

Comentário que ficará registrado no painel do contato


Request example

{
  "comment": "Aguardando documentos"
}
1
2
3

Response 201

{
    "id": 7740752,
    "icon": "comment",
    "text": "Aguardando documentos",
    "title": "Comentário",
    "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
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Response 400

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

Response 404

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

PUT/contacts/{id}

Atualizar um contato

Atualiza um contato a partir do seu ID.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Identificador do contato


Body parameter

ParameterTypeDescription
namestringNome do contato
emailstringEndereço de e-mail do contato
name
string

Nome do contato


email
string

Endereço de e-mail do contato


Request example

{
  "name": "Edward",
  "email": "newemailcharles@teste.com"
}
1
2
3
4

Response 200

{
    "id": "7663175",
    "whatsappID": null,
    "name": "Edward",
    "companyID": "15333",
    "email": "newemailteste@teste.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": null,
    "createdAt": null,
    "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": "charles 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,
        "telegram": false,
        "whatsapp": false,
        "email": true,
        "sms": false,
        "telegramBot": false,
        "whatsappApi": false
    },
    "customFields": [],
    "custom_fields": [],
    "number": null,
    "type": 2,
    "isEditable": true,
    "messengerId": null,
    "groups": [],
    "organizations": [],
    "organization": false,
    "parent": null,
    "links": []
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

Response 400

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

DELETE/contacts/{id}

Excluir um contato

Exclui um contato a partir do seu ID.

ParameterTypeDescription
idintegerIdentificador do contato
id
integer

Identificador do contato


Response 204

Requisição bem sucedida com o body vazio
1

Response 404

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

Custom Fields

GET/customFields

Visualizar todos os campos personalizados

Obtém a lista de todos os campos personalizados. Campos personalizados são utilizados para inserir informações adicionais em um contato.

Response 200

[
    {
        "id": "906",
        "companyID": "12043",
        "name": "segunda opção de email",
        "description": "segunda opção de email",
        "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": "segunda_opcao_de_email_customer",
        "inputType": "input"
    },
    {
        "id": "907",
        "companyID": "12043",
        "name": "último endereço",
        "description": "último endereço",
        "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": "ultimo_endereco_organization",
        "inputType": "input"
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

Departamentos

GET/departments

Visualizar todos os departamentos

Obtém a lista de todos os departamentos criados na empresa.

Nota: Este recurso possui um parâmetro opcional que retorna todos os registros encontrados.

ParameterTypeDescription
allPagesbooleanParâmetro que retornará todos os registros se seu valor for verdadeirooptional
allPages
boolean

Parâmetro que retornará todos os registros se seu valor for verdadeiro


Response 200

[
    {
        "id": 25954,
        "name": "1 - Financeiro",
        "parentId": null
    },
    {
        "id": 25955,
        "name": "2 - Almoxarifado",
        "parentId": null
    },
    {
        "id": 25956,
        "name": "3 - Vendas",
        "parentId": null
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Response 404

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

GET/departments/parents

Visualizar todos os departamentos pai

Obtém a lista de todos os departamentos Pai. Departamentos pai são departamentos que possuem sub-departamentos.

Response 200

[
    {
        "id": 25954,
        "name": "1 - Financeiro"
    },
    {
        "id": 25955,
        "name": "2 - Almoxarifado"
    }
]
1
2
3
4
5
6
7
8
9
10

Response 404

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

GET/departments/{id}

Visualizar um departamento

Obtém as informações do departamento cadastrado, a partir do ID do departamento.

Nota: Para obter o ID de todos os departamentos cadastrados, por favor, Clique Aqui!

ParameterTypeDescription
idintegerIdentificador do departamento
id
integer

Identificador do departamento


Response 200

{
    "id": "25955",
    "name": "Almoxarifado",
    "companyID": "12043",
    "status": "1",
    "order": "1",
    "color": "#e36c09",
    "welcomeText": "Você escolheu o departamento de \"Almoxarifado\".",
    "hourText": null,
    "fatherID": null,
    "botID": null,
    "promoID": null,
    "chatFormID": null,
    "tags": "Almoxarifado, Depósito, Armazém",
    "channelWhatsapp": "1",
    "channelTelegram": "1",
    "channelMessenger": "1",
    "channelWidget": "1",
    "channelPhone": "1",
    "channelTelegramBot": "1"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Tabulações

GET/tabulations

Visualizar todas as tabulações

Obtém a lista de todas as tabulações criadas para melhor identificar o contexto de um chat.

Nota: Este recurso possui um parâmetro opcional que retorna todos os registros encontrados.

ParameterTypeDescription
allPagesbooleanParâmetro que retornará todos os registros se seu valor for verdadeiro
allPages
boolean

Parâmetro que retornará todos os registros se seu valor for verdadeiro


Response 200

[
    {
        "id": 12055,
        "name": "Trocas"
    },
    {
        "id": 12054,
        "name": "Prazo de Entrega"
    },
    {
        "id": 12053,
        "name": "Dúvidas"
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14

GET/tabulations/{id}

Visualizar uma tabulação

Obtém os dados de uma tabulação a partir do seu ID.

ParameterTypeDescription
idintegerIdentificador da tabulação
id
integer

Identificador da tabulação


Response 200

{
    "id": "12054",
    "companyID": "12043",
    "name": "Prazo de Entrega",
    "createdAt": "2019-06-13 09:13:44",
    "updatedAt": "2019-06-13 09:13:44",
    "status": "1",
    "dao": null,
    "remapped": []
}
1
2
3
4
5
6
7
8
9
10

Response 404

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

Atalhos

GET/shortcuts

Visualizar todos os atalhos

Obtém a lista de todos atalhos utilizados na plataforma Huggy. Atalhos são utilizados para o envio de textos pré-definidos, fotos, imagens e outros arquivos.

Response 200

[
    {
        "id": "17229",
        "name": "Mensagem de boas vindas",
        "key": "bvvendas",
        "file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
        "text": "Olá! Seja bem vindo ao departamento vendas!",
        "public": true
    },
    {
        "id": "17228",
        "name": "Mensagem de boas vindas",
        "key": "bvalmoxarifado",
        "file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
        "text": "Olá! Seja bem vindo ao departamento Almoxarifado!",
        "public": false
    },
    {
        "id": "17227",
        "name": "Mensagem de boas vindas",
        "key": "bvfinanceiro",
        "file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
        "text": null,
        "public": false
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

GET/shortcuts/{id}

Visualizar um atalho

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

ParameterTypeDescription
idintegerIdentificador do atalho
id
integer

Identificador do atalho


Response 200

{
    "id": "17229",
    "name": "Mensagem de boas vindas",
    "key": "bvvendas",
    "file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
    "text": "Olá! Seja bem vindo ao departamento vendas!",
    "public": true
}
1
2
3
4
5
6
7
8

Response 404

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

POST/shortcuts

Criar um novo atalho

Cria um novo atalho para o envio de textos, imagens e arquivos.

Nota: Para o envio de mensagens de texto, são reservados um limite de mil caracteres.

Body parameter

ParameterTypeDescription
namestringNome do atalho
keystringPalavra chave utilizada para chamar o atalho
filestringLink do arquivo usado no envio do atalho
textstringUma mensagem de texto usada no envio do atalhooptional
publicbooleanTorna o atalho visível na tela de atendimentos ou na lista de atalhosoptional
name
string

Nome do atalho


key
string

Palavra chave utilizada para chamar o atalho


file
string

Link do arquivo usado no envio do atalho


text
string

Uma mensagem de texto usada no envio do atalho


public
boolean

Torna o atalho visível na tela de atendimentos ou na lista de atalhos


Request example

{
    "name": "Documento de inscrição",
    "key":  "docs_inscricao",
    "file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
    "text": "Uma mensagem que acompanha o documento enviado.",
    "public": true
}
1
2
3
4
5
6
7

Response 201

{
    "id": 34009,
    "name": "Documento de inscrição",
    "key": "docs_inscricao",
    "file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
    "text": "Uma mensagem que acompanha o documento enviado.",
    "public": true
}
1
2
3
4
5
6
7
8

Response 400

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

PUT/shortcuts/{id}

Atualizar um atalho

Atualiza um atalho por meio de seu ID.

ParameterTypeDescription
idintegerIdentificador do atalho
id
integer

Identificador do atalho


Body parameter

ParameterTypeDescription
namestringNome do atalho
keystringPalavra chave utilizada para chamar o atalho
filestringLink contendo arquivo usado no envio do atalho
textstringUma mensagem de texto usada no envio do atalhooptional
publicbooleanTorna o atalho visível na tela de atendimentos ou na lista de atalhosoptional
name
string

Nome do atalho


key
string

Palavra chave utilizada para chamar o atalho


file
string

Link contendo arquivo usado no envio do atalho


text
string

Uma mensagem de texto usada no envio do atalho


public
boolean

Torna o atalho visível na tela de atendimentos ou na lista de atalhos


Request example

{
    "name": "Novo nome para o atalho",
    "key":  "nova_chave",
    "file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
    "text": "Uma mensagem atualizada para o atalho.",
    "public": false
}
1
2
3
4
5
6
7

Response 200

{
    "id": 34003,
    "name": "Novo nome para o atalho",
    "key": "nova_chave",
    "file": "https://cdn.pzw.io/2d1eb9940d3ef692dfc607bb26c4d85b.png",
    "text": "Uma mensagem atualizada para o atalho.",
    "public": false
}
1
2
3
4
5
6
7
8

Response 400

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

Response 404

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

DELETE/shortcuts/{id}

Deletar um atalho

Exclui um atalho a partir de seu ID.

ParameterTypeDescription
idintegerIdentificador do atalho
id
integer

Identificador do atalho


Response 204

Requisição bem sucedida com o body vazio
1

Response 404

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

Status

GET/status

Visualizar todos os status

Obtém a lista dos status criados pelos agentes. O status de um agente corresponde a uma condição em que ele se encontra, podendo ele estar Disponível ou Indisponível.

Response 200

[
    {
        "id": "1691",
        "name": "Ausente",
        "message": "Olá! Logo estarei de volta.",
        "type": "0",
        "createdAt": "2019-06-13 11:59:56",
        "updatedAt": "2019-06-13 12:00:16",
        "agentID": "34976",
        "available": false
    },
    {
        "id": "1690",
        "name": "Horário de Almoço",
        "message": "Olá! Nosso horário de almoço é de 12h às 13h.",
        "type": "0",
        "createdAt": "2019-06-13 11:58:35",
        "updatedAt": "2019-06-13 12:00:06",
        "agentID": "34976",
        "available": false
    },
    {
        "id": "1689",
        "name": "Reunião",
        "message": "Olá! Estamos em reunião. Logo retornaremos.",
        "type": "0",
        "createdAt": "2019-06-13 11:57:21",
        "updatedAt": "2019-06-13 11:57:21",
        "agentID": "34976",
        "available": false
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

Workflow

GET/workflows

Visualizar todos os workflows

Obtém a lista de todos os workflows juntamente com suas respectivas etapas. Workflows são fluxos de trabalho que podem ser criados para dirigir as etapas dos atendimentos

Response 200

[
    {
        "id": "5656",
        "companyID": "12043",
        "name": "Ciclo de Entrega",
        "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": "Preparo de Material",
                "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": "Coleta de Material",
                "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": "Envio ao Destinatário",
                "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 Entregue",
                "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": "ciclo de validação de vendas",
        "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": "Solicitação Aberta",
                "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": "Solicitação Atendida",
                "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": "Solicitação Negada",
                "createdAt": "2019-06-13 14:41:13",
                "updatedAt": "2019-06-13 14:41:13",
                "status": "1",
                "fatherID": "5651",
                "color": null,
                "steps": []
            }
        ]
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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}

Visualizar um workflow

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

ParameterTypeDescription
idintegerIdentificador do workflow
id
integer

Identificador do workflow


Response 200

{
    "id": "5656",
    "companyID": "12043",
    "name": "Ciclo de Entrega",
    "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": "Preparo de Material",
            "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": "Coleta de Material",
            "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": "Envio ao Destinatário",
            "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 Entregue",
            "createdAt": "2019-06-13 15:08:12",
            "updatedAt": "2019-06-13 15:08:12",
            "status": "1",
            "fatherID": "5656",
            "color": null,
            "steps": []
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

Response 404

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

Bots

GET/bots

Visualizar todos os bots

Obtém a lista de todos os bots criados na plataforma Huggy.

Response 200

[
    {
        "id": 2926,
        "name": "HuggyBot"
    },
    {
        "id": 2925,
        "name": "HuggyGirl"
    }
]
1
2
3
4
5
6
7
8
9
10

GET/bots/{id}

Visualizar um bot

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

ParameterTypeDescription
idintegerIdentificador do bot
id
integer

Identificador do bot


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": "carlos@teste.com",
    "birthday": "2019-06-17",
    "transferMessage": "Você será transferido para um outro atendente.",
    "welcomeMessage": "Olá, Seja bem vindo a Huggy.",
    "maxErrors": "100",
    "engineID": "3",
    "apiAiLang": "pt-BR",
    "apiAiClientToken": "d7d1d9daec634e598ea9ccd59acf7693",
    "apiAiDeveloperToken": "9555d63499614423859ade081ff74da4",
    "watsonUsername": null,
    "watsonPassword": null,
    "watsonWorkspace": null,
    "watsonAcceptEmptyIntents": "0",
    "botServiceSecret": null,
    "botServiceBotHandle": null
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

Response 404

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

Virtual Agents

GET/virtualAgents

Visualizar todos os agentes virtuais

Obtém a lista de todos os agentes virtuais cadastrados na plataforma Huggy.

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"
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

GET/virtualAgents/{id}

Visualizar um agente virtual

Obtém os dados de um agente virtual a partir do seu ID.

ParameterTypeDescription
idintegerIdentificador do agente virtual
id
integer

Identificador do agente virtual


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"
}
1
2
3
4
5
6
7
8
9
10
11
12

Response 404

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

Projects

GET/projects

Visualizar todos os projetos

Obtém a lista de todos os projetos criados na plataforma Huggy.

Nota: Além dos projetos e seus respectivos flows, essa ação retornará as variáveis de contexto padrão do sistema.

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"
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

GET/projects/{id}

Visualizar um projeto

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

ParameterTypeDescription
idintegerIdentificador do projeto
id
integer

Identificador do projeto


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
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70

POST/projects

Criar um projeto

Cria um projeto passando no corpo da requisição o atributo name e seu valor desejado.

Body parameters
ParameterTypeDescription
namestringNome do projeto que será criado
name
string

Nome do projeto que será criado


Request example

{
  "name": "Eletrônicos"
}
1
2
3

Response 200

{
    "project": {
        "id": "487742",
        "companyID": "15691",
        "name": "Eletrônicos",
        "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
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

PUT/projects/{id}

Atualizar o nome do projeto

Atualiza o nome do projeto passando no corpo da requisição o atributo name e seu valor desejado.

ParameterTypeDescription
idintegerIdentificador do projeto
id
integer

Identificador do projeto


Body parameters
ParameterTypeDescription
namestringNovo nome para o projeto
name
string

Novo nome para o projeto


Request example

{
  "name": "Eletrônicos"
}
1
2
3

Response 200

{
    "project": {
        "id": "487704",
        "companyID": "15691",
        "name": "Visitantes",
        "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
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

Response 400

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

DELETE/projects/{id}

Excluir um projeto

Exclui um projeto a partir do seu ID.

ParameterTypeDescription
idintegerIdentificador do projeto
id
integer

Identificador do projeto


Response 204

{
    "status": true
}
1
2
3

Response 404

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

GET/projects/{id}/flows

Visualizar todos os flows de um projeto

Obtém a lista de todos os flows de um projeto juntamente com suas ações configuradas.

ParameterTypeDescription
idintegerIdentificador do projeto
id
integer

Identificador do projeto


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": []
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

GET/projects/{projectId}/flows/{flowId}

Visualizar um Flow

Obtém os dados de um Flow automatizado a partir do ID do Flow.

ParameterTypeDescription
projectIdintegerIdentificador do projetooptional
flowIdintegerIdentificador do Flow
projectId
integer

Identificador do projeto


flowId
integer

Identificador do Flow


Response 200

{
    "id": "30124",
    "token": "dfd5a68d-31d4-4261-b659-e5b4c9b26a53",
    "description": "Boas Vindas",
    "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! Seja bem vindo ao nosso site.\\n\",\"Gostaria de falar com um de nossos atendentes?\\n\",\"Ol\\u00e1! Seja bem vindo ao nosso site.\"],\"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": [
                    "Olá! Seja bem vindo ao nosso site.\n",
                    "Gostaria de falar com um de nossos atendentes?\n",
                    "Olá! Seja bem vindo ao nosso site."
                ],
                "type": {
                    "type": "0"
                },
                "typing": false,
                "index": 1
            }
        },
        {
            "id": "101123",
            "type": "huggy.action.send.message",
            "value": "{\"content\":[\"Gostaria de falar com um de nossos atendentes?\"],\"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": [
                    "Gostaria de falar com um de nossos atendentes?"
                ],
                "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": "carlos@teste.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": "Administrador",
                "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": []
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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

POST/projects/{id}/flows

Criar um Flow

Passe no parâmetro de consulta o ID do projeto e o atributo no corpo da solicitação para que o Flow seja criado.

ParameterTypeDescription
idintegerIdentificador do projeto
id
integer

Identificador do projeto


Body parameters
ParameterTypeDescription
descriptionstringDescrição do Flow que será criado
description
string

Descrição do Flow que será criado


Request example

{
  "description": "Rastreamento"
}
1
2
3

Response 200

{
    "id": "30358",
    "token": "63cb5ca6-9069-4144-a241-4df582af3b6e",
    "description": "Rastreamento",
    "createdAt": null,
    "updatedAt": null,
    "status": null,
    "companyID": 15691,
    "createdBy": null,
    "importStatus": null,
    "projectID": 487759,
    "importedBy": null,
    "actions": [],
    "variables": []
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Response 404

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

PUT/projects/{projectId}/flows/{flowId}

Atualizar um Flow

Atualiza a descrição de um Flow.

ParameterTypeDescription
projectIdintegerIdentificador do projeto
flowIdintegerIdentificador do Flow
projectId
integer

Identificador do projeto


flowId
integer

Identificador do Flow


Body parameters
ParameterTypeDescription
descriptionstringNova descrição do Flow
description
string

Nova descrição do Flow


Request example

{
  "description": "New description"
}
1
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": []
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Response 404

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

DELETE/projects/{projectsId}/flows/{flowId}

Excluir um Flow

Exclui um Flow a partir do seu ID

Nota: Não é possível excluir um Flow que esteja em uso.

ParameterTypeDescription
projectIdintegerIdentificador do projeto
flowIdintegerIdentificador do Flow
projectId
integer

Identificador do projeto


flowId
integer

Identificador do Flow


Response 204

{
Requisição bem sucedida com o body vazio
}
1
2
3

Response 400

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

Response 404

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

Organizations

GET/organizations

Visualizar todas as organizações

Obtém a lista de todas as organizações cadastradas na plataforma Huggy.

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": "Distribuidora de Calçados",
        "observation": null,
        "domains": "hankmark.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": "Atendimento Digital",
        "observation": null,
        "domains": "huggy.io",
        "phone": "75999999999",
        "photo": null,
        "nameEmoji": "Huggy",
        "customFields": []
    },
    {
        "id": "19705",
        "name": "Mercante",
        "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": "Distribuidora de Alimentos",
        "observation": null,
        "domains": "testmercante.com",
        "phone": "75999999999",
        "photo": null,
        "nameEmoji": "Mercante",
        "customFields": []
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

POST/organizations

Criar uma nova organização

Cria uma nova organização na plataforma Huggy. Passe no corpo requisição o atributo name com o nome desejado.

Body parameters
ParameterTypeDescription
namestringNome da organização
name
string

Nome da organização


Request example

{
  "name": "Huggy"
}
1
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": []
}
1
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": "Esta mensagem mostrará que não existe resultado para sua busca."
}
1
2
3

PUT/organizations/{Id}

Atualizar uma organização

Atualiza o nome da organização.

ParameterTypeDescription
idintegerIdentificador da organização
id
integer

Identificador da organização


Parâmetro do corpo
ParameterTypeDescription
namestringNovo nome da organização
name
string

Novo nome da organização


Request example

{
  "name": "Huggy"
}
1
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": []
}
1
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": "Esta mensagem mostrará que não existe resultado para sua busca."
}
1
2
3

DELETE/organizations/{Id}

Excluir uma organização

Exclui uma organização a partir de seu ID

ParameterTypeDescription
idintegerIdentificador da organização
id
integer

Identificador da organização


Response 204

Requisição bem sucedida com o body vazio
1

Response 404

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

1
2
3
4

Companies

GET/companies

Visualizar todas as companies

Obtém a lista de todas as companies de um agente.

Nota: O Token de acesso à API pertence ao agente. Portanto, as companies listadas neste endpoint corresponderá às companies do proprietário do Token.

Response 200

[
    {
        "id": 15691,
        "name": "Huggy"
    },
    {
        "id": 15693,
        "name": "Hank"
    }
]
1
2
3
4
5
6
7
8
9
10

Types