Dynamics do Zero ao PRO · Lição 33 de 48 · Módulo 5

LIÇÃO 33Conectar o Power BI ao Dataverse do Dynamics

Os dados dos casos, SLAs e filas já estão no Dataverse. O Power BI transforma esses dados em relatórios visuais que o gestor consegue ler em 30 segundos. Esta lição cobre a conexão, a importação das tabelas certas e a preparação dos dados antes de construir qualquer visual.

🎯

Resultado desta lição

Ao final, você terá o Power BI Desktop conectado ao Dataverse, com as tabelas Cases, Contacts e Queue Items carregadas, tratadas no Power Query e prontas para construir os visuais nas próximas lições.

Dataverse vs. OData — dois caminhos para o Dynamics

Recomendado

Conector Dataverse

  • Nativo para Power Platform
  • Suporta DirectQuery e Import
  • Filtragem automática de colunas técnicas
  • Renovação de token automática
  • Melhor performance em grandes volumes
Alternativo

Conector OData

  • Genérico — funciona com qualquer OData v4
  • Mais controle sobre a URL da query
  • Útil para filtragens complexas via URL
  • Requer configuração manual de autenticação
  • Mais trabalhoso para manter
Use o conector Dataverse: Para a grande maioria dos cenários com Dynamics, o conector Dataverse nativo é a melhor escolha. Use OData apenas quando precisar de queries muito específicas que o conector nativo não suporta — o que é raro no dia a dia.

Passo a passo

  1. Instale o Power BI Desktop

    → Baixe em: powerbi.microsoft.com/desktop
    → Instale e faça login com a conta Microsoft 365

    O Power BI Desktop é gratuito. A conta Microsoft 365 com licença de Dynamics já tem acesso ao Power BI Pro via tenant. Se não tiver licença Pro, o trial de 60 dias é suficiente para as lições.

    Versão do Power BI Desktop: Atualize para a versão mais recente antes de começar. O conector Dataverse recebe melhorias frequentes e versões antigas podem apresentar problemas de conexão.
  2. Conecte ao Dataverse

    → Power BI Desktop → Home → Get data → More...
    → Pesquise: Dataverse
    → Selecione: Dataverse → Connect
    Environment domain: URL do seu ambiente Dynamics
    Formato: https://orgXXXXXXXX.crm.dynamics.com
    (encontre em: Settings → Session Details no Dynamics)

    Data connectivity mode: Import
    (DirectQuery é mais lento para relatórios analíticos — Import é adequado para a maioria dos cenários)

    Clique em OK → faça login com a conta Microsoft 365 → aguarde a conexão.

  3. Selecione as tabelas necessárias

    O Navigator do Dataverse lista todas as tabelas do ambiente. Selecione:

    ✓ incident — Casos (a tabela principal)
    ✓ contact — Contatos dos clientes
    ✓ account — Contas (empresas clientes)
    ✓ queueitem — Itens nas filas
    ✓ systemuser — Agentes responsáveis
    → Clique em Transform Data (não Load — você vai tratar os dados antes)
    Por que "incident" e não "case"? No Dataverse, a tabela de Casos tem o nome lógico incident — herança do modelo de dados original do Dynamics CRM. No navegador do Power BI, ela aparece como "incident". Quando você vê "Cases" no Customer Service Hub, é a mesma tabela com nome de exibição diferente.
  4. Remova colunas desnecessárias no Power Query

    A tabela incident tem mais de 200 colunas. Mantenha apenas as relevantes:

    → Na tabela incident no Power Query Editor
    → Clique com botão direito em qualquer coluna → Choose columns
    → Selecione apenas:
    incidentid, title, ticketnumber, createdon, modifiedon,
    statecode, statuscode, prioritycode, caseorigincode,
    customerid, ownerid, resolveby, slainvokedid,
    slaisblocked, _ownerid_value, _customerid_value
    Colunas de lookup no Dataverse: Campos de relacionamento aparecem com o prefixo _ e sufixo _value — por exemplo, _ownerid_value contém o GUID do proprietário. Você vai usar esses GUIDs para fazer joins com as outras tabelas nas próximas etapas.
  5. Crie colunas de texto para os campos de código

    Os campos statecode, statuscode e prioritycode são números no Dataverse. Crie colunas com os textos correspondentes:

    → Na tabela incident → Add Column → Conditional Column

    Coluna "Prioridade":
    if prioritycode = 1 then "Alta" else if prioritycode = 2 then "Normal" else "Baixa"

    Coluna "Status":
    if statecode = 0 then "Ativo" else if statecode = 1 then "Resolvido" else "Cancelado"

    Coluna "Origem":
    if caseorigincode = 1 then "Telefone" else if caseorigincode = 2 then "E-mail" else if caseorigincode = 3 then "Portal" else "Outro"
  6. Crie coluna de tempo de resolução em horas

    → Add Column → Custom Column
    Nome: Horas até Resolução
    Fórmula:
    if [statecode] = 1 then Duration.TotalHours([modifiedon] - [createdon]) else null

    Esta coluna calcula quantas horas levou para resolver o caso — só para casos já resolvidos. Será a base da métrica de tempo médio de resolução (MTTR) no relatório.

  7. Carregue os dados e verifique o modelo

    → Power Query Editor → Home → Close & Apply

    O Power BI importa os dados do Dataverse. Vá para a aba Model view (ícone de diagrama na lateral esquerda) e verifique os relacionamentos automáticos criados entre as tabelas.

    Relacionamentos esperados:
    incident._customerid_value → contact.contactid
    incident._ownerid_value → systemuser.systemuserid
    queueitem.objectid → incident.incidentid
    Se os relacionamentos não foram criados automaticamente: Crie manualmente em Model view arrastando o campo GUID de uma tabela até o campo ID correspondente da outra. O Power BI precisa que os tipos de dados sejam iguais — ambos devem ser Text (GUID como string).

Checklist

Import vs. DirectQuery — quando usar cada modo

Import (padrão): Dados são copiados para o arquivo .pbix. Relatório responde rápido, mas os dados ficam desatualizados até o próximo refresh. Ideal para relatórios gerenciais com refresh diário ou semanal.

DirectQuery: Cada interação no relatório faz uma query ao Dataverse em tempo real. Dados sempre atualizados, mas performance depende da velocidade da API. Use apenas quando o dado precisa ser em tempo real (ex: dashboards operacionais ao vivo).

Para os relatórios de atendimento desta série, Import é suficiente — configure o refresh automático no Power BI Service para atualizar diariamente às 6h da manhã antes do início do expediente.

Foto de Pablo Maruk
Pablo Maruk
Analista Funcional de Dynamics · 16 anos de TI · EUA & Europa