Integracja voxDeveloper CRM z programem Power BI pozwala pobierać dane z CRM i tworzyć własne raporty. Ten artykuł opisuje konfigurację połączenia w Power BI Desktop, przekształcenie odpowiedzi JSON w tabelę oraz kontrolę pierwszego importu.
1. Przygotuj program i dostęp do CRM
- Zainstaluj Power BI Desktop, korzystając z oficjalnej strony Microsoft Power BI.
- Utwórz klucz API w panelu CRM — sposób opisuje podsekcja poniżej. Jeżeli nie masz uprawnień do tego ekranu albo nie znasz nazwy panelu, zgłoś się do działu supportu voxCRM. Dział supportu przekaże również nazwę panelu lub adres źródła danych.
- Ustal, do których raportów i inwestycji klucz ma dostęp. Zakres danych może być węższy niż dostęp użytkownika pracującego w CRM.
Skąd wziąć klucz API
Klucz API tworzy się w panelu CRM, na ekranie Usługi Web - aplikacje (ekran administracyjny — wymaga odpowiednich uprawnień). Przy aplikacji trzeba ustawić trzy rzeczy naraz:
- w polu Wybierz usługi dostępne dla klucza zaznaczyć usługę PowerBi,
- wskazać inwestycje, do których klucz ma mieć dostęp,
- w polu Dostęp do endpointów PowerBi zaznaczyć konkretne źródła, z których klucz może korzystać. Źródła są tam wypisane jako pełne ścieżki, np.
/webservice/power-bi/source/agreements-registry.
Brak któregokolwiek z tych trzech ustawień kończy się kodem HTTP 403. Bez zaznaczonej usługi PowerBi lub bez zaznaczonych endpointów lista dostępów nie zostanie zapisana i API odmówi odpowiedzi — również na źródło endpoints, które także wymaga osobnego nadania. Klucz bez przypisanej inwestycji zwraca 403 na każdym źródle.
Dział supportu voxCRM pomaga ustalić, jaki zakres raportów i inwestycji jest potrzebny do planowanej analizy.
Api-key serwer odpowiada kodem 403 i zwraca stronę HTML logowania do CRM, a nie JSON. Power BI zgłosi wtedy błąd przetwarzania odpowiedzi, a nie brak danych.TWOJ_KLUCZ_API. Własny klucz wpisz lokalnie w ustawieniach połączenia. Nie publikuj go na zrzutach ekranu, w adresach URL ani w rozmowie z agentem AI. Plik raportu i jego zapytania mogą zawierać zarówno dane, jak i wpisany nagłówek — sprawdź je przed przekazaniem poza firmę.2. Dodaj źródło internetowe
W Power BI Desktop wybierz Narzędzia główne → Pobierz dane → Internet (w zależności od wersji: Sieć Web / Web). Następnie wybierz tryb Zaawansowane.

Na pierwsze połączenie wybierz źródło endpoints. Zwraca ono listę raportów dostępnych dla Twojego klucza.
Adres do wprowadzenia w polu Części adresu URL:
https://NAZWA_PANELU.voxdeveloper.com/webservice/power-bi/source/endpoints
Zastąp NAZWA_PANELU nazwą otrzymaną od działu supportu. Nie wpisuj adresu bazy wiedzy voxcrmedu.com — dane pobierane są z panelu CRM.
Dodaj nagłówek żądania HTTP
W części dotyczącej nagłówków wpisz nazwę Api-key i wartość swojego klucza. Jeżeli interfejs pokazuje przycisk Dodaj nagłówek, użyj go do dodania odpowiedniego wiersza.
| Ustawienie | Co wpisać |
| Nazwa nagłówka | Api-key |
| Wartość nagłówka | Własny klucz utworzony na ekranie Usługi Web - aplikacje. TWOJ_KLUCZ_API jest tylko oznaczeniem w instrukcji. |
| Dodatkowy nagłówek, opcjonalnie | Nazwa: Accept; wartość: application/json |
Zatwierdź ustawienia przyciskiem OK lub Połącz, zgodnie z wyświetlanym oknem. Układ przycisków może różnić się między wersjami Power BI. Obsługę adresów i nagłówków opisuje również dokumentacja łącznika Web firmy Microsoft.
3. Wybierz sposób uwierzytelniania w Power BI
Jeżeli pojawi się okno Dostęp do zawartości sieci Web, dla opisanego połączenia z ręcznie wpisanym nagłówkiem Api-key wybierz Anonimowy, a następnie Połącz. Zastosuj ustawienie do adresu źródła API używanego w tej integracji.
Api-key. Wybranie tej opcji nie udostępnia danych publicznie i nie wyłącza autoryzacji po stronie CRM.
Ilustracje pokazują przykładową wersję interfejsu. Adres widoczny na zrzucie zastąp własnym adresem; przy pierwszym sprawdzeniu użyj endpoints.
4. Przekształć odpowiedź JSON w tabelę
Po połączeniu przejdź do edytora Power Query, korzystając z opcji Przekształć dane, jeżeli nie został otwarty automatycznie.
- Dla źródła
endpointsodpowiedź jest listą rekordów. Przekształć listę w tabelę poleceniem Do tabeli. - Rozwiń kolumnę zawierającą rekordy za pomocą ikony rozwijania w nagłówku kolumny.
- Wybierz pola
endpointidescription. Powstanie tabela dostępnych źródeł i ich opisów. - Sprawdź, czy potrzebny raport występuje na liście. Nazwij zapytanie, np. Dostępne źródła API.
Pole endpoint zawiera pełną ścieżkę
Kolumna endpoint zawiera pełną ścieżkę, a nie samą nazwę źródła — np. /webservice/power-bi/source/agreements-registry. Adres do kolejnego zapytania zbudujesz, doklejając tę ścieżkę do adresu panelu: https://NAZWA_PANELU.voxdeveloper.com + wartość z kolumny endpoint. Nie doklejaj jej do adresu, który już kończy się na /webservice/power-bi/source/ — powstanie wtedy adres z powtórzonym fragmentem i błąd HTTP 404.
Nazwa źródła, którą posługuje się dokumentacja (agreements-registry, leads-list, investment-status), to ostatni segment tej ścieżki. Aby wyciąć go w edytorze Power Query i porównać listę z katalogiem źródeł, zaznacz kolumnę endpoint i wybierz Przekształć → Podziel kolumnę → Przez ogranicznik, jako ogranicznik podaj ukośnik / i zaznacz opcję Skrajny prawy ogranicznik. Ten sam efekt daje kolumna niestandardowa z formułą:
Text.AfterDelimiter([endpoint], "/", {0, RelativePosition.FromEnd})
Kolumna description jest opisem, a nie identyfikatorem — bywa po angielsku i powtarza się dla różnych źródeł (na panelu demonstracyjnym ten sam opis mają trzy różne źródła). Raport rozpoznawaj po ostatnim segmencie ścieżki z kolumny endpoint.
Kształty odpowiedzi
Inne endpointy mogą zwracać odmienną strukturę. Poniżej kształty odpowiedzi występujące w źródłach Power BI (sprawdzone na panelu demonstracyjnym, wrzesień 2026). Postępuj zgodnie z opisem wybranego raportu:
| Odpowiedź | Jak ją przetworzyć |
| Lista rekordów (goła tablica) np. endpoints, agreements-registry, schedule-payment-list, clients-list, leads-list, meeting, sales-forecast, lead-comparision |
Zamień listę na tabelę poleceniem Do tabeli, a następnie rozwiń rekordy. |
Obiekt z polem datanp. agreements, invoices, payments, lead-list-agreements |
Sprawdź, czy odpowiedź nie zawiera błędu. Przejdź do listy data, zamień ją na tabelę i rozwiń rekordy. |
Obiekt z polami data i metanp. contact-transactions, investment-status |
Wiersze są w data. Pole meta to metadane pobrania (m.in. generated_at oraz licznik: total_records lub total_investments) — nie ładuj ich do tej samej tabeli co wiersze. Licznik porównuj z liczbą wierszy tylko wtedy, gdy nazywa się total_records. total_investments liczy inwestycje, a nie wiersze: w investment-status wynosi 3 przy 9 wierszach, bo każda inwestycja ma trzy kategorie stanu. |
Obiekt z success, timestamp, licznikiem i datanp. agreements-and-reservations, clients-report, leads-report (licznik total_count), activities-list (licznik total_records) |
Najpierw sprawdź wynik operacji. success: false oznacza błąd, nie pustą tabelę biznesową. Dane są w data; licznik wykorzystaj do kontroli kompletności importu. |
Obiekt z własną nazwą kolekcjiagreements-list → transactions, branch-users → users, investments-sales-targets → investments |
Działa jak pole data, ale nazywa się inaczej. Nie buduj zapytania na sztywno pod nazwę data — sprawdź, jak nazywa się pole z listą w wybranym raporcie. |
Obiekt, którego klucze są nazwami inwestycjirealestate-list |
To słownik dwupoziomowy: klucz najwyższego poziomu to nazwa inwestycji, klucz niższego poziomu to UUID lokalu, a wartością jest rekord z nazwą lokalu. Użyj polecenia Konwertuj → Do tabeli. Powstaną kolumny Nazwa i Wartość: w kolumnie Nazwa znajdziesz nazwę inwestycji, w kolumnie Wartość — zagnieżdżony rekord, który rozwiń ponownie tym samym poleceniem, aby uzyskać UUID lokalu i jego nazwę. Nazwy inwestycji i UUID są tu kluczami struktury, a nie polami danych — po rozwinięciu przenieś je do zwykłych kolumn. |
Obiekt z grupami zamiast wierszysold-and-not-sold |
Najwyższy poziom to grupy wyniku (na panelu demonstracyjnym: Sprzedane, Niesprzedane, Podsumowanie), a w każdej z nich kolejny obiekt kluczowany typem lokalu (Mieszkanie, Garaż, Miejsce postojowe…, na końcu Suma), pod którym dopiero jest lista z wartościami zbiorczymi. Użyj Konwertuj → Do tabeli, zachowaj kolumnę Nazwa jako nazwę grupy, rozwiń kolumnę Wartość drugi raz (typ lokalu), a dopiero potem rozwiń listę rekordów. To raport zagregowany — wiersz nie odpowiada pojedynczej umowie ani lokalowi. |
| Pusta lista | Sprawdź filtry i dostęp do inwestycji. Pusta lista nie dowodzi, że w całym CRM nie ma danych. |
5. Dodaj wybrany raport
Utwórz kolejne zapytanie przez Pobierz dane → Internet. Wprowadź adres wybranego endpointu wraz z filtrami i ustaw nagłówek Api-key. Samo pobranie listy endpoints nie pobiera danych ze wszystkich raportów.
Jak podać filtry
Filtry przekazuje się parami nazwa/wartość w ścieżce adresu, oddzielonymi ukośnikami:
https://NAZWA_PANELU.voxdeveloper.com/webservice/power-bi/source/schedule-payment-list/date-from/2026-01-01/date-to/2026-08-31
Ta sama para zapisana jako klasyczny parametr zapytania (query string) zwraca identyczną odpowiedź:
https://NAZWA_PANELU.voxdeveloper.com/webservice/power-bi/source/schedule-payment-list?date-from=2026-01-01&date-to=2026-08-31
W dokumentacji źródeł obowiązuje zapis w ścieżce — trzymaj się go, żeby przykłady były porównywalne z artykułem Endpointy Power BI — lista dostępnych źródeł danych.
Nazwy parametrów dat różnią się między raportami
Nazwy parametrów przepisuj znak w znak. date-from (z myślnikiem) i date_from (z podkreślnikiem) to dwie różne nazwy i nie są zamienne. Każde źródło ma własny wariant:
| Źródło | Nazwy parametrów dat |
schedule-payment-list, meeting, leads-list, sold-and-not-sold, leads-activities-history-rp |
date-from, date-to |
clients-report |
contact-created-date-from, contact-created-date-to |
leads-report |
lead-created-date-from, lead-created-date-to |
gclid-conversions |
conversion-date-from, conversion-date-to |
agreements-and-reservations, clients-list, sales-forecast, payments, invoices, contact-transactions, agreements, lead-list-agreements, sold-associated-units |
date_from, date_to |
agreements-registry |
agreement_date_from, agreement_date_to |
activities-list |
activity_date_from, activity_date_to |
lead-comparision |
date-from, date-to, ale w formacie MM-RRRR (raport miesięczny) |
Daty zapisuj w formacie RRRR-MM-DD, np. 2026-01-01. Wyjątkiem jest lead-comparision, który oczekuje miesiąca i roku w postaci MM-RRRR, np. 01-2026.
Filtr inwestycji w większości raportów nazywa się investment. Dwa źródła — investment-status i contact-transactions — czytają dodatkowo nazwę investment_name; na panelu demonstracyjnym investment-status zwraca dla obu nazw ten sam wynik. Kilka inwestycji wskażesz jedną parą, rozdzielając nazwy przecinkiem: investment/Nazwa%20A,Nazwa%20B.
Kodowanie wartości w adresie
Wartości koduj dla adresu URL. Dotyczy to zwłaszcza nazw inwestycji ze spacjami i polskimi znakami — nazwa Magiczny Zakątek zapisana bez kodowania nie zostanie rozpoznana:
https://NAZWA_PANELU.voxdeveloper.com/webservice/power-bi/source/schedule-payment-list/investment/Magiczny%20Zak%C4%85tek
| Znak | Zapis w adresie | Znak | Zapis w adresie |
| spacja | %20 |
ó | %C3%B3 |
| ą | %C4%85 |
ś | %C5%9B |
| ć | %C4%87 |
ź | %C5%BA |
| ę | %C4%99 |
ż | %C5%BC |
| ł | %C5%82 |
ń | %C5%84 |
Wybierz źródło odpowiednie do pytania:
| Co chcesz analizować? | Dokumentacja źródła |
| Bieżący stan i wartość lokali | investment-status |
| Umowy i ich rozkład w czasie | agreements-registry |
| Kontakty, ich źródła i zarejestrowane etapy obsługi lokalu | agreements-and-reservations |
| Harmonogram i saldo transz | schedule-payment-list |
Parametry dat mają różne znaczenie w poszczególnych raportach. Nie kopiuj nazw filtrów między endpointami bez sprawdzenia dokumentacji. Brak filtra nie oznacza pobrania całej historii. Przy pierwszym imporcie wybierz niewielki, jawny zakres, jeżeli raport obsługuje daty.
Brak stronicowania i limity zakresu dat
API Power BI nie stronicuje wyników — nie ma parametrów limit, offset ani page. Każde zapytanie zwraca cały zbiór pasujący do filtrów, dlatego szeroki zakres kończy się długim pobieraniem lub przekroczeniem czasu, a nie kolejną stroną danych. Zakres zawężaj filtrami dat i inwestycji.
Część źródeł ma maksymalny okres wyszukiwania. Jeżeli nie podasz żadnej daty, raport i tak zwróci tylko ostatnie N miesięcy — nie całą historię:
| Źródło | Parametry | Maksymalny zakres |
clients-list |
date_from, date_to |
3 miesiące |
clients-report |
contact-created-date-from, contact-created-date-to |
6 miesięcy |
leads-report |
lead-created-date-from, lead-created-date-to |
6 miesięcy |
contact-transactions |
date_from, date_to |
6 miesięcy |
activities-list |
activity_date_from, activity_date_to |
12 miesięcy |
leads-activities-history-rp |
date-from, date-to |
12 miesięcy |
Przekroczenie limitu nie obcina wyniku po cichu. Serwer odpowiada kodem HTTP 400 i JSON-em z polem error — dla clients-list jest to {"error": "The period between date_from and date_to cannot exceed 3 months"}, w pozostałych raportach treść komunikatu jest analogiczna, z ich własnymi nazwami parametrów i limitem. Tak samo kończy się podanie daty początkowej późniejszej niż końcowa.
Dłuższej historii nie pobierzesz jednym zapytaniem. W Power BI zrób to tak: utwórz z zapytania funkcję z parametrami daty początkowej i końcowej, wywołaj ją dla kolejnych okresów mieszczących się w limicie (np. dla kwartałów) i połącz wyniki poleceniem Dołącz zapytania. Zapisz w opisie zapytania, jakie okresy zostały pobrane — luka między nimi nie jest widoczna w danych.
schedule-payment-list bez date-from cofa się tylko o rok, leads-list bez żadnej daty pokazuje ostatnie 100 dni, meeting bez żadnej daty — bieżący rok kalendarzowy, a lead-comparision — ostatnie 24 miesiące: bieżący i 23 poprzednie. Jeżeli potrzebujesz starszych danych, podaj datę początkową jawnie.6. Sprawdź dane przed utworzeniem wykresów
- Typy kolumn: ustaw daty i liczby zgodnie z formatem odpowiedzi. Jeżeli liczby zapisano jako tekst, uwzględnij ustawienia regionalne. Identyfikatory przechowuj jako tekst, bez zaokrąglania.
- Braki: nie zastępuj automatycznie
null, pustych pól ani błędów konwersji zerem. - Jednostka rekordu: ustal, czy liczysz umowy, lokale, kontakty czy transze. Liczba wierszy nie zawsze odpowiada liczbie obiektów.
- Powiązania: nie łącz tabel po podobieństwie nazw ani samych wartości ID. Najpierw potwierdź znaczenie kluczy i to, czy połączenie nie powiela kwot.
- Porównanie z CRM: sprawdź wynik dla tego samego zakresu inwestycji, dat, typów i statusów. Zapisz filtry oraz datę pobrania.
Nazwy kolumn bez polskich znaków
Część raportów zwraca nagłówki po polsku — w schedule-payment-list są to m.in. „Nieruchomość”, „Zapłacono”, „ID lokalu głównego”. Jeżeli wolisz nazwy w ASCII, wygodniejsze w formułach DAX i odporniejsze na ustawienia regionalne, dopisz do adresu parę format-numbers/1:
https://NAZWA_PANELU.voxdeveloper.com/webservice/power-bi/source/schedule-payment-list/date-from/2026-01-01/date-to/2026-08-31/format-numbers/1
Nagłówki zmienią się wtedy na „Nieruchomosc”, „Zaplacono”, „ID lokalu glownego”. Parametr usuwa znaki diakrytyczne, usuwa kropkę i nawias zamykający, a nawias otwierający zamienia na spację — w agreements-registry kolumna L.P. zmienia się w LP, a Powierzchnia lokalu (total) w Powierzchnia lokalu total (z dwiema spacjami). Pozostałe znaki, np. % i /, zostają bez zmian. Wartości i liczba wierszy pozostają identyczne — zmieniają się wyłącznie nazwy kolumn. Stabilne nazwy kolumn ułatwiają pisanie miar DAX i zmniejszają ryzyko, że formuła przestanie działać po przeniesieniu pliku na inne stanowisko.
format-numbers/1: parametr stosuj tylko w raportach, których odpowiedź jest listą wierszy. W raportach zwracających obiekt (np. agreements-and-reservations, investment-status) nazwy kolumn nie zostaną zmienione, a wszystkie pojedyncze pola najwyższego poziomu znikną z odpowiedzi — z agreements-and-reservations zostaje samo data, bez success, timestamp i total_count. Jeśli Twoje zapytanie sprawdza pole success, nie dodawaj tego parametru. Ustal jeden wariant i trzymaj się go — późniejsze dołożenie albo usunięcie format-numbers/1 zmieni nazwy kolumn i zepsuje gotowe miary oraz wizualizacje.Po kontroli wybierz Zamknij i zastosuj, aby załadować dane do modelu Power BI i rozpocząć tworzenie wizualizacji.
7. Odświeżanie raportu
W Power BI Desktop użyj polecenia Odśwież, aby ponownie wykonać zapytania. Daty wpisane na stałe w adresie pozostają takie same — odświeżenie nie przesuwa automatycznie zakresu na bieżący miesiąc.
Ponieważ API nie stronicuje wyników, każde odświeżenie pobiera cały zbiór pasujący do filtrów od nowa — nie ma pobierania przyrostowego po stronie źródła. Jeżeli dłuższą historię złożyłeś z kilku zapytań o różnych zakresach dat (patrz krok 5), odświeżenie wykona je wszystkie. Przy szerokich zakresach planuj odświeżanie poza godzinami pracy i nie uruchamiaj wielu zapytań równolegle.
Odświeżanie po publikacji w usłudze Power BI wymaga osobnej konfiguracji połączenia i harmonogramu. Przetestuj je w docelowym środowisku; udane pobranie w Desktop nie jest jeszcze potwierdzeniem działania odświeżania w usłudze.
Najczęstsze problemy
| Objaw | Co sprawdzić |
| Brak dostępu, HTTP 403 | Nazwę panelu, nagłówek Api-key, ważność klucza oraz to, czy dany endpoint jest zaznaczony dla aplikacji na ekranie Usługi Web - aplikacje (patrz krok 1). Nie interpretuj odmowy jako braku danych. API nie zwraca kodu 401: jeżeli Power BI go pokazuje, pochodzi z warstwy pośredniej albo z bramy sieciowej, a nie z API. |
Zapytanie z filtrem investment kończy się błędem dostępu (HTTP 403) |
Nazwa inwestycji jest porównywana dosłownie z listą inwestycji przypisanych do klucza, jeszcze przed wykonaniem raportu. Literówka, brak polskich znaków, niezakodowana spacja albo inwestycja spoza zakresu klucza dają HTTP 403 z pustym ciałem odpowiedzi, a nie pustą tabelę. Skopiuj nazwę z odpowiedzi realestate-list (nazwy inwestycji są tam kluczami) lub z pola investment_name w investment-status, zakoduj znaki specjalne (spacja = %20, ą = %C4%85) i potwierdź zakres inwestycji przypisany do aplikacji na ekranie Usługi Web - aplikacje. |
| Power BI korzysta ze starego sposobu logowania | Sprawdź uprawnienia dla tego źródła w ustawieniach źródeł danych Power BI. Dla konfiguracji opisanej tutaj klucz jest nagłówkiem, a tryb połączenia to Anonimowy. |
| Lista jest pusta | Zakres dat, statusy, uprawnienia i domyślne zawężenia raportu (część źródeł domyślnie pokazuje np. tylko aktywne pozycje albo ostatnie miesiące). Nie usuwaj wszystkich filtrów bez sprawdzenia ich znaczenia. Nazwa inwestycji podana w parametrze investment nie powoduje pustej listy — niepoprawna kończy się kodem HTTP 403 (patrz wiersz wyżej). |
| Filtr nie działa, wierszy jest więcej niż oczekiwano | Pisownię nazwy parametru (myślnik czy podkreślnik — patrz tabela w kroku 5) oraz kodowanie wartości. Nierozpoznany parametr nie zgłasza błędu: odpowiedź ma status HTTP 200, a zapytanie wykonuje się tak, jakby filtra nie było. |
| W kolumnie widać Record lub List | Odpowiedź wymaga rozwinięcia. Sprawdź, czy dane są bezpośrednio listą, czy znajdują się w polu data, w polu o innej nazwie (transactions, users, investments), czy też w obiekcie kluczowanym nazwami inwestycji lub grupami (patrz tabela kształtów odpowiedzi w kroku 4). |
| Błąd konwersji kwoty lub daty | Oryginalną wartość, ustawienia regionalne oraz automatycznie dodany krok zmiany typu. Nie usuwaj błędnych wierszy bez wyjaśnienia. |
| Brak kolumny po odświeżeniu | Zmianę schematu, tłumaczeń albo zakresu odpowiedzi. Sprawdź też, czy do adresu nie dodano lub nie usunięto parametru format-numbers/1 — zmienia on nazwy kolumn. Porównaj dane z dokumentacją przed zmianą modelu. |
| HTTP 400 przy podanym zakresie dat | Długość zakresu i kolejność dat. Część raportów ma twardy limit okresu (3, 6 lub 12 miesięcy — patrz krok 5); przekroczenie limitu oraz data początkowa późniejsza niż końcowa kończą się kodem 400 i JSON-em z polem error. |
| HTTP 429 lub 503, odpowiedź nie jest JSON-em | Aplikacja API nie generuje tych kodów — zwraca 200, 400, 403, 404 i 500. Kody 429 i 503 pochodzą z zapory i pojawiają się przy intensywnym odpytywaniu; treść odpowiedzi nie pochodzi wtedy z API i nie należy jej parsować jako JSON. Zmniejsz częstotliwość zapytań, nie ponawiaj ich równolegle i nie zakładaj obecności nagłówka Retry-After — nie gwarantuje go żadna warstwa aplikacji. |
| Przekroczenie czasu zapytania | Wielkość zakresu i łączność. API zwraca cały zbiór naraz, bez stronicowania, więc zawęź zakres dat i inwestycji zamiast ponawiać to samo zapytanie. |
| Własny skrypt (nie Power BI) dostaje HTTP 403 mimo poprawnego klucza | Nagłówek User-Agent. Domyślny nagłówek bibliotek Pythona (Python-urllib) bywa odrzucany przez zaporę kodem 403, zanim klucz w ogóle zostanie sprawdzony — diagnoza „klucz nie działa” jest wtedy fałszywa. Ustaw własny User-Agent z nazwą swojej integracji. |
Jeśli potrzebujesz pomocy, przekaż działowi supportu nazwę endpointu, pełny adres zapytania (bez klucza), kod odpowiedzi HTTP, wersję Power BI i treść błędu. Przed wysłaniem zrzutu zasłoń klucz oraz dane klientów.