Voltar ao portfólioBack to portfolio

Dashboard com Integração API Bling ERPBling ERP API Integration Dashboard

Vendas de 6 CNPJs consolidadas num único dashboard.Sales from 6 companies consolidated into a single dashboard.

ProblemaProblem

Empresa do ramo de cadeiras, importadora e revendedora, com 6 CNPJs diferentes — cada um com contas próprias em marketplaces (Madeira Madeira, Magalu, Amazon, Mercado Livre) e uma conta própria no Bling ERP. Não era possível visualizar as vendas consolidadas em um único ambiente: era preciso entrar em cada ERP separadamente para tirar relatórios e analisar cada CNPJ de forma individual, além de o ERP oferecer apenas relatórios fixos e pouco flexíveis.A chair importer and retailer operating under 6 different companies (CNPJs) — each with its own marketplace accounts (Madeira Madeira, Magalu, Amazon, Mercado Livre) and its own Bling ERP account. There was no way to see consolidated sales in one place: someone had to log into each ERP separately to pull reports and analyze each company individually, and the ERP itself only offered fixed, inflexible reports.

O consumo de dados era feito direto no Power BI via Power Query, com uma consulta individual por CNPJ. Para pedidos, o processo exigia duas etapas: uma consulta trazia a lista geral de pedidos com seus IDs, e outra buscava o detalhe de cada pedido individualmente, já que a API do Bling só permitia isso um por vez. Multiplicado por 6 CNPJs consultados sequencialmente dentro do próprio Power BI, esse segundo passo era o principal gargalo — o refresh do dashboard ultrapassava 30 minutos.Data was pulled straight into Power BI via Power Query, with one query per company. For orders, the process took two steps: one query fetched the general order list with IDs, and another fetched each order's detail individually, since the Bling API only allowed that one at a time. Multiplied across 6 companies queried sequentially inside Power BI itself, that second step was the main bottleneck — dashboard refresh took over 30 minutes.

SoluçãoSolution

Scripts em Python passaram a consultar a API do Bling de cada CNPJ e consolidar os dados em um banco SQLite, tirando toda a carga de requisições de dentro do Power BI. Os scripts rodam em um servidor dedicado, agendados via Windows Task Scheduler, uma vez por dia às 17h.Python scripts now query each company's Bling API and consolidate the data into a SQLite database, moving all the request load out of Power BI. The scripts run on a dedicated server, scheduled via Windows Task Scheduler once a day at 5 PM.

O Power BI passou a se conectar direto ao SQLite já consolidado, reduzindo drasticamente o tempo de refresh. Como a empresa não tinha licença Power BI Pro, o dashboard é consultado localmente no servidor (Power BI Desktop) e exportado em PDF para envio ao cliente.Power BI now connects directly to the already-consolidated SQLite database, drastically cutting refresh time. Since the company didn't have a Power BI Pro license, the dashboard is queried locally on the server (Power BI Desktop) and exported to PDF to send to the client.

Estrutura do relatórioReport structure

Página GeralGeneral Page

  • Faturamento bruto, líquido, custos com anúncios e despesas com freteGross and net revenue, ad spend and shipping costs
  • Faturamento por marketplace e por status de pedido (atendidos, em aberto, cancelados)Revenue by marketplace and by order status (fulfilled, open, canceled)
  • Ticket médio, média diária e meta de faturamento com % de atingimentoAverage ticket, daily average and monthly revenue goal with % achieved
  • Evolução do faturamento dia a diaDay-by-day revenue trend
  • Filtros por loja/CNPJ, marketplace e período, com visão consolidada ou por lojaFilters by store/company, marketplace and date range, consolidated or per-store view

Página de RegiõesRegions Page

  • Mapa geográfico da distribuição de pedidos por localizaçãoGeographic map of order distribution by location
  • Ranking dos estados com mais pedidos e distribuição por macrorregiãoRanking of states with the most orders and distribution by macro-region
  • Ticket médio, faturamento bruto e custo médio de frete por regiãoAverage ticket, gross revenue and average shipping cost by region
  • Participação percentual de cada região no faturamento totalEach region's percentage share of total revenue
  • Prazo médio de entrega por regiãoAverage delivery time by region

Página de PedidosOrders Page

  • Acompanhamento dos últimos pedidos recebidos de cada lojaTracking of the latest orders received from each store
  • Dados e valores individuais de cada pedidoIndividual data and values for each order

ResultadosResults

O ganho mais direto foi eliminar o processo manual de entrar individualmente em cada um dos 6 ERPs do Bling para tirar relatórios e consolidar as informações — algo que se tornava inviável conforme o volume de pedidos crescia. Com o pipeline automatizado, essa consolidação passou a acontecer sozinha todos os dias, sem intervenção humana, com os dados prontos logo no início do expediente.The most direct win was eliminating the manual process of logging into each of the 6 Bling ERPs individually to pull reports and consolidate the data by hand — something that became unworkable as order volume grew. With the automated pipeline, that consolidation now happens on its own every day, with no human intervention, and the data is ready first thing in the morning.

Outros ganhos: visão gerencial unificada dos 6 CNPJs em uma única tela, com opção de detalhar por loja; padronização das métricas — já que o Bling só oferecia relatórios fixos, e passou a existir exatamente o que o negócio precisava, num só lugar; e mais agilidade na tomada de decisão, com dados atualizados diariamente e organizados por página, sem depender de compilação manual sob demanda.Other gains: a unified management view of all 6 companies on a single screen, with the option to drill into any one store; standardized metrics — since Bling only offered fixed reports, the dashboard now shows exactly what the business needs, in one place; and faster decision-making, with data refreshed daily and organized by page, with no manual compilation on demand.

TecnologiasTechnologies

PythonPandasSQLitePower BIPower QueryDAXBling API (REST)Windows Task Scheduler

Fluxograma de ArquiteturaArchitecture Flowchart

1

Extração via API BlingBling API Extraction

Scripts Python consultam a API do Bling de cada um dos 6 CNPJs, buscando pedidos e seus detalhes.Python scripts query the Bling API for each of the 6 companies, fetching orders and their details.

2

Consolidação (SQLite)Consolidation (SQLite)

Os dados dos 6 CNPJs são unificados num único banco SQLite local, tirando a carga de dentro do Power BI.Data from all 6 companies is unified into a single local SQLite database, moving the load out of Power BI.

3

Agendamento DiárioDaily Scheduling

Windows Task Scheduler executa o pipeline automaticamente, 1 vez por dia, às 17h, num servidor dedicado.Windows Task Scheduler runs the pipeline automatically, once a day at 5 PM, on a dedicated server.

4

Dashboard (Power BI)Dashboard (Power BI)

Power BI Desktop consulta o SQLite local direto, sem o gargalo de chamar a API do Bling em tempo real.Power BI Desktop queries the local SQLite database directly, without the bottleneck of calling the Bling API live.

5

Exportação em PDFPDF Export

Sem licença Power BI Pro, o relatório é exportado em PDF localmente e enviado ao cliente.Without a Power BI Pro license, the report is exported to PDF locally and sent to the client.