You are viewing the Portuguese (Brazil) site, but your language preference is set to English. Switch to English site →

Menu

Adesão em tempo real no Workforce Management

O feed de Adesão em tempo real no Workforce Management (WFM RTA Feed) foi projetado para que os parceiros monitorem e relatem a atividade dos agentes em um contact center do Flex. Os eventos desse feed podem ser usados para gerar um instantâneo em tempo real do status do agente.

Os eventos do TaskRouter modelam a atividade principal dos agentes em um aplicativo Flex. O RTA Feed interpreta e reformata esses eventos do TaskRouter para que possam ser usados para monitorar a adesão em tempo real. Cada evento contém uma mensagem formatada em JSON para representar o status de um agente.

Os eventos do RTA Feed são enviados com segurança como solicitações HTTPS para uma URL registrada. Observe que o protocolo HTTP não criptografado não tem mais suporte.

Um aplicativo Flex ocupado gerará um grande volume de eventos frequentemente. Lembre‐se disso ao considerar como seu aplicativo será dimensionado.

Acionador de evento

Cada evento representa o status em tempo real de um agente. O status de um agente é a combinação de sua atividade e todas as tarefas com as quais ele está lidando. As tarefas com as quais os agentes estão lidando são representadas como reservations porque isso é vinculado entre a tarefa e o agente. Essas entidades são as mesmas que você veria se estivesse inscrito no Feed de eventos do TaskRouter.

Exemplo de evento:

{
"product": "Flex",
"object": "WFMWorkerChange",
"version": 1,
"records": [
    {
    "worker": {
        "sid": "WKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "activity_sid": "WAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "activity_name": "Available",
        "date_activity_updated": "2021-06-06T11:06:10.268Z"
    },
    "channels": [
        {
        "reservations": [
            {
            "sid": "WRxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "status": "created",
            "workflow_sid": "WWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_sid": "WTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_queue_sid": "WQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_assignment_status": "reserved",
            "date_created": "2021-06-06T11:09:09.240Z",
            "date_updated": "2021-06-06T11:09:09.240Z",
            "date_reservation_status_updated": "2021-06-06T11:09:09.240Z",
            "direction": "inbound"              }
        ],
        "worker_channel_sid": null,
        "task_channel_sid": "TCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "task_channel_name": "voice",
        "available": 1,
        "available_capacity": 0,
        "capacity": 1,
        "date_capacity_updated": null
        }
    ],
    "account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "workspace_sid": "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "last_processed_event_sid": "EVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "date_last_processed_event": "2021-06-06T11:09:09.240Z"
    }
]
}

Com o Feed de eventos do TaskRouter, cada ação e atualização no Flex gera um novo evento: uma tarefa é criada, um agente altera seu status, uma tarefa é roteada para um agente, uma tarefa é concluída etc. Os detalhes contidos nesse evento são específicos do que aconteceu e não contêm nenhum outro contexto. Por exemplo, um evento task.completed informará qual agente concluiu uma tarefa, mas não informará com quantas tarefas adicionais o agente ainda pode estar lidando.

Em comparação, um evento do RTA Feed informa tudo o que você precisa saber sobre um único agente. Um evento é acionado sempre que algo sobre um agente muda. Por exemplo, um evento seria acionado quando um agente recebesse ou concluísse uma tarefa. No entanto, nenhum evento será acionado quando uma tarefa for criada, mas ainda não tiver sido atribuída em nenhum lugar.

Se várias alterações ocorrerem simultaneamente, o RTA Feed enviará um único evento com as informações mais recentes após as atualizações simultâneas. Isso significa que você não pode depender do RTA Feed para derivar uma história de todas as mudanças dentro do Flex; às vezes, as mudanças de curta duração não são enviadas. Em vez disso, você pode usar os Eventos do TaskRouter se um histórico completo for necessário.

Eventos do TaskRouter que acionam uma atualização do RTA Feed

Esses eventos do TaskRouter podem acionar uma atualização do RTA Feed:

  • worker.created → um novo funcionário foi criado.
  • worker.deleted → um funcionário foi excluído.
  • worker.capacity.update → a configuração de capacidade para um funcionário foi atualizada.
  • worker.activity.update → a atividade de um funcionário foi atualizada.
  • reservation.created → uma nova reserva foi criada para um funcionário (ou seja, uma tarefa foi atribuída).
  • reservation.accepted → uma reserva foi aceita por um funcionário.
  • reservation.canceled → uma reserva foi cancelada.
  • reservation.rescinded → uma reserva foi rescindida.
  • reservation.rejected → uma reserva foi rejeitada.
  • reservation.timeout → a reserva atingiu o tempo limite.
  • reservation.wrapup → uma reserva movida para a finalização.

Nossa documentação sobre o ciclo de vida de uma tarefa fornece mais detalhes sobre esses estados e atribuições de tarefa.

API de Eventos

Um evento assumirá a seguinte forma:

{
"product": "Flex",
"object": "WFMWorkerChange",
"version": 1,
"records": [
    <recordObject1>, <recordObject2>, ...
]
}

Este é o wrapper padrão para o evento. product, object e version serão os mesmos para cada evento que você receber.

records conterá uma lista de registros de eventos, documentados abaixo. A maioria dos campos documentados abaixo pode retornar valores null. Isso geralmente acontece quando o RTA Feed está processando eventos que nunca encontrou antes para um agente. Com o tempo, à medida que o agente aciona mais eventos, haverá menos valores null. Ao projetar um sistema para processar esses registros, você deve garantir que responda adequadamente aos valores null.

recordObject

Cada record representa o status de um agente específico. Um recordObject assumirá o seguinte formato:

{
"account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"workspace_sid": "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"last_processed_event_sid": "EVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"date_last_processed_event": "2021-06-06T11:09:09.240Z",
"worker": <workerObject>,
"channels": [
    <channelObject1>, <channelObject2>, ...
]
}
  • account_sid: o AccountSid (SID da conta) para o aplicativo Flex que gera eventos.
  • workspace_sid: o espaço de trabalho do TaskRouter que contém a atividade do Flex.
  • last_processed_event_sid: um identificador exclusivo para o registro do RTA Feed.
  • date_last_processed_event: um carimbo de data/hora de quando os dados do evento foram gerados.
  • worker:um objeto que descreve a qual funcionário do TaskRouter este registro se relaciona.
  • channels: uma matriz de channelObjects, cada um comunicando se o agente está lidando com tarefas em um determinado canal. Se channels for null, isso significa que o agente não tem tarefas ativas.

workerObject

O workerObject descreve a qual funcionário do TaskRouter este registro do RTA Feed está relacionado.

{
    "sid": "WKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "activity_sid": "WAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "activity_name": "Available",
    "date_activity_updated": "2021-06-06T11:06:10.268Z"
}
  • sid: o WorkerSid do TaskRouter associado a este agente.
  • activity_sid: o ActivitySid do TaskRouter para a atividade atual do agente.
  • activity_name :o nome amigável da atividade atual do agente. Os valores comuns são "Offline" (Off‐line), "Available" (Disponível) e "Unavailable" (Indisponível). Cada aplicativo Flex pode personalizar essa lista para incluir valores personalizados.
  • date_activity_update: um carimbo de data/hora de quando o agente mudou para sua atividade atual.

channelObject

As tarefas com as quais um agente está lidando são segmentadas pelo canal da tarefa, como "voice" ou "sms". Cada channelObject representa um canal. É possível que a matriz channels seja nula e não contenha nenhum channelObjects. Essa situação pode ocorrer quando o RTA Feed processa o primeiro evento para um novo agente e esse evento não contém nenhuma informação de canal. Se channels for nulo, deve‐se interpretar que o agente não tem tarefas ativas.

{
"worker_channel_sid": "WCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"task_channel_sid": "TCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"task_channel_name": "voice",
"available": 1,
"available_capacity": 100,
"capacity": 1,
"date_capacity_updated": "2021-06-06T11:06:10.268Z",
"reservations": [
    <reservationObject1>, <reservationObject2>, ...
]
}
  • worker_channel_sid: o WorkerChannelSid do TaskRouter que identifica o recurso. O WorkerChannel é a entidade que mapeia a capacidade de um agente e a disponibilidade para um TaskChannel específico.
  • task_channel_sid: o TaskChannelSid do TaskRouter para este canal.
  • task_channel_name: o nome amigável deste canal. Os valores comuns são "voice", "chat" e "sms". Cada aplicativo Flex pode personalizar essa lista para incluir valores personalizados.
  • available: se o funcionário receberá tarefas deste tipo de canal. 1 indica que ele receberá. 0 indica que ele não receberá.
  • available_capacity: a porcentagem atual de capacidade que o TaskChannel tem disponível. Pode ser um número entre 0 e 100. Um valor de 0 indica que o TaskChannel não tem capacidade disponível e um valor de 100 significa que o funcionário está disponível para receber qualquer tarefa deste tipo de TaskChannel.
  • capacity: o número de tarefas desse canal que o agente está configurado a lidar com simultaneamente. O TaskRouter não cria nenhuma reserva depois que as tarefas atribuídas para o funcionário atingirem o valor.
  • date_capacity_updated: um carimbo de data/hora de quando a capacidade configurada do agente foi atualizada pela última vez para este canal.
  • reservations: uma matriz de reservationObjects, cada um comunicando o estado e os detalhes de tarefas individuais com as quais o agente está lidando. Se reservations for null, isso significa que o agente não tem tarefas ativas neste canal.

reservationObject

Cada tarefa ativa com a qual um agente está lidando é representada como uma reserva. Detalhes sobre reservas podem ser encontrados na documentação do TaskRouter. É comum que a matriz de reservas seja nula. Isso significa que o agente não está lidando com nenhuma tarefa nesse canal específico.

{
"sid": "WRxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"status": "created",
"workflow_sid": "WWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"task_sid": "WTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"task_queue_sid": "WQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"task_assignment_status": "reserved",
"date_created": "2021-06-06T11:09:09.240Z",
"date_updated": "2021-06-06T11:09:09.240Z",
"date_reservation_status_updated": "2021-06-06T11:09:09.240Z",
"direction": "inbound"              
}
  • sid: o identificador exclusivo da reserva do TaskRouter.
  • status: o status da reserva do agente. Os valores possíveis são aceita, cancelada, concluída, pendente, rejeitada, rescindida, tempo limite e encerrando. Os detalhes sobre esses status estão em nossa documentação sobre reserva.
  • workflow_sid: o WorkflowSid do TaskRouter para o fluxo de trabalho que roteou esta tarefa específica.
  • task_sid: o TaskSid associado a esta tarefa.
  • task_queue_sid: um identificador exclusivo para a TaskQueue do TaskRouter da qual a tarefa faz parte.
  • task_assignment_status: o status da tarefa. Os valores possíveis são pendente, reservada, atribuída, cancelada, encerrando e concluída. Os detalhes sobre esses status estão em nossa documentação do ciclo de vida da tarefa.
  • date_created: o carimbo de data/hora de quando esta reserva foi criada. Isso indica o tempo em que a tarefa foi atribuída ao agente.
  • date_updated: o carimbo de data/hora da última vez que o status da reserva foi atualizado.
  • date_reservation_status_updated: o carimbo de data/hora da última vez que o status da reserva foi atualizado.
  • direction: a direção da tarefa. inbound ou outbound.

Exemplos

O agente está off-line e não está lidando com nenhuma tarefa

{
"product": "Flex",
"object": "WFMWorkerChange",
"version": 1,
"records": [
    {
    "worker": {
        "sid": "WKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "activity_sid": "WAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "activity_name": "Offline",
        "date_activity_updated": "2021-06-06T10:51:19.778Z"
    },
    "channels": null,
    "account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "workspace_sid": "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "last_processed_event_sid": "EVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "date_last_processed_event": "2021-06-06T10:52:04.383Z"
    }
]
}

O agente está Available e lidando com uma chamada de voz

{
"product": "Flex",
"object": "WFMWorkerChange",
"version": 1,
"records": [
    {
    "worker": {
        "sid": "WKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "activity_sid": "WAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "activity_name": "Available",
        "date_activity_updated": "2021-06-06T11:06:10.268Z"
    },
    "channels": [
        {
        "reservations": [
            {
            "sid": "WRxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "status": "accepted",
            "workflow_sid": "WWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_sid": "WTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_queue_sid": "WQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_assignment_status": "assigned",
            "date_created": "2021-06-06T11:09:09.240Z",
            "date_updated": "2021-06-06T11:10:00.561Z",
            "date_reservation_status_updated": "2021-06-06T11:10:00.561Z",
            "direction": "inbound"
            }
        ],
        "worker_channel_sid": null,
        "task_channel_sid": "TCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "task_channel_name": "voice",
        "available": 1,
        "available_capacity": 0,
        "capacity": 1,
        "date_capacity_updated": null
        }
    ],
    "account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "workspace_sid": "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "last_processed_event_sid": "EVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "date_last_processed_event": "2021-06-06T11:10:00.561Z"
    }
]
}

O agente está Available e fazendo várias tarefas

{
"product": "Flex",
"object": "WFMWorkerChange",
"version": 1,
"records": [
    {
    "worker": {
        "sid": "WKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "activity_sid": "WAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "activity_name": "Available",
        "date_activity_updated": "2021-06-06T11:06:10.268Z"
    },
    "channels": [
        {
        "reservations": [
            {
            "sid": "WRxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "status": "accepted",
            "workflow_sid": "WWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_sid": "WTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_queue_sid": "WQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_assignment_status": "assigned",
            "date_created": "2021-06-06T12:26:09.602Z",
            "date_updated": "2021-06-06T12:26:18.104Z",
            "date_reservation_status_updated": "2021-06-06T12:26:18.104Z"
            }
        ],
        "worker_channel_sid": null,
        "task_channel_sid": "TCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "task_channel_name": "voice",
        "available": 1,
        "available_capacity": 0,
        "capacity": 1,
        "date_capacity_updated": null
        },
        {
        "reservations": [
            {
            "sid": "WRxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "status": "accepted",
            "workflow_sid": "WWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_sid": "WTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_queue_sid": "WQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "task_assignment_status": "assigned",
            "date_created": "2021-06-06T11:44:31.924Z",
            "date_updated": "2021-06-06T11:44:42.262Z",
            "date_reservation_status_updated": "2021-06-06T11:44:42.262Z"
            },
        ],
        "worker_channel_sid": null,
        "task_channel_sid": "TCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "task_channel_name": "chat",
        "available": 1,
        "available_capacity": 75,
        "capacity": 4,
        "date_capacity_updated": null
        }
    ],
    "account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "workspace_sid": "WSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "last_processed_event_sid": "EVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "date_last_processed_event": "2021-06-06T12:26:18.104Z"
Classifique esta página:

Precisa de ajuda?

Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.

Obrigado pelo seu feedback!

Selecione o(s) motivo(s) para seu feedback. As informações adicionais que você fornece nos ajudam a melhorar nossa documentação:

Enviando seu feedback...
🎉 Obrigado pelo seu feedback!
Algo deu errado. Tente novamente.

Obrigado pelo seu feedback!

Indique‑nos e obtenha USD10 em 3 etapas simples!

Etapa 1

Obtenha o link

Obtenha um link de indicação pessoal gratuito aqui

Etapa 2

Dê USD10

Seu usuário se inscreve e faz a atualização usando o link

Etapa 3

Obtenha USD10

1.250 mensagens SMS grátis
OU 1.000 min de voz grátis
OU 12.000 chats
OU mais