Atendimentos

Objetivo

A API de atendimentos (Contacts) tem por objetivo consultar os atendimentos de uma determinada instância do Zenvia NLU.

Request

POST https://api.altubots.com/contacts/<instancia>

Headers

NameTypeDescription

x-api-key

<token>

{
    "contacts": [
        ...
        {
            "id": 3213,
            "identifier": "52fe68c3-4501-cde1-e6fb-d3cb11d0ad9c",
            "assistantId": 1,
            "source": "widget",
            "externalId": null,
            "interactions": 30,
            "dateCreated": "2020-06-01"
            "finishedAt": "2020-06-03"
            "attributes": {
                "name": "...",
                "email": "...",
                ...
            },
            "history": [
                {
                    "time": "2020-06-01T12:45:59.158Z",
                    "sender": "bot",
                    "message": [
                        {
                            "text": "Olá! Eu sou o assistente virtual.",
                            "type": "text"
                        },
                        {
                            "text": "O que você deseja?",
                            "type": "text"
                        }
                    ]
                },
                ...
            ]
            "events": [
                ...
                {
                    "id": 13213,
                    "assistantId": 1,
                    "contactId": 16267,
                    "externalId": null,
                    "eventName": "transbordo",
                    "eventId": 12,
                    "extra1": null,
                    "extra2": null,
                    "details": {
                        "cpf": "12345678909",
                        "skill": "assistencia_tecnica"
                    },
                    "date": "2020-06-22 16:38:42"
                },
                ...
            ]
        },
        ...
    ]
    "resultCount": "150",
    "pagination": "Hash para consultar a próxima página"
}

Body template

{
    "filters": {
        "id": "ID do atendimento",
        "assistantId": "ID do assistente",
        "identifier": "Identifier do contato",
        "externalId": "External id do atendimento",
        "startDate": "Início do período da consulta (Y-m-d)",
        "endDate": "Fim do período da consulta (Y-m-d)",
        "source": "Canal de origem do atendimento",
        "limit": "Quantidade de resultados por página" //Default: 100 - max: 500
    }
    "attributes": {
        "cpf": "CPF do atendimento",
        "phone": "Telefone do atendimento",
        "email": "Email do atendimento",
        "identification_number": "Extra de identificação",
        "identification_number2": "Extra de identificação 2",
        "identification_number3": "Extra de identificação 3",
        "identification_number4": "Extra de identificação 4"        
    },
    "flags": {
        "history": "Boolean para trazer ou não o histórico de mensagens do atendimento",  //Default: false
        "events": "Boolean para trazer ou não o histórico de eventos do atendimento" //Default: false
    },
    "pagination": "Hash para consultar a próxima página"
}

Limitações

  • Máximo de resultados por consulta: 500

    • Utilizar paginação para buscar páginas seguintes

  • Consultas que não tenham o filter id, identifier ou phone não retornarão histórico e eventos

  • Um fluxo comum de requisições/consultas seria:

    1. Consultar pelo assistantId, startDate e endDate

    2. Em cada atendimento encontrado, usar o id ou identifier para fazer uma nova consulta com a flag history: true para buscar o histórico daquele atendimento

  • Limite de 50000 consultas por dia e 10 por segundo

O paginationé disponibilizado no response da primeira consulta para que você possa referenciá-lo no body da próxima consulta e assim sucessivamente.

Last updated