Klaviyo API Reporting Main Image

Klaviyo API mit Power Bi und Excel verbinden

So bekommst du die Zahlen aus deinem Klaviyo Account über die API in deine Power-Bi- und Excel-Berichte.

In diesem kurzen Tutorial lernst du wie du Klaviyo Metriken über die Klaviyo API in deine Power-Bi- oder Excel-Dashboards bekommst. Dafür bietet sich – unter anderem – die Nutzung von Power Query an. Das Ganze ist super spannend, weil

  1. du so auch Dinge wie Kundenbindung oder Newsletter-Performance in deinen Reports ausweisen kannst
  2. deine Reports somit auch automatisiert werden und mit einem Klick oder einer Routine aktualisiert werden können (ohne lästige CSV-Dateien herunterzuladen).

1 | Hol dir deinen Klaviyo API Key

Im Klaviyo Interface sind alle API Keys zu finden unter: https://www.klaviyo.com/settings/account/api-keys . Selbstverständlich musst du zum Aufruf der URL eingeloggt sein. Des Weiteren könnten spezielle Rechte erforderlich sein, um die Erstellung und Einsicht von API Keys durchführen zu können. Kontaktiere bei Problemen deinen Account-Admin.

Klaviyo API Keys erstellen einsehen

Lege dir am besten einen speziellen API Key mit „Read only“-Rechten für Reporting Zwecke an.

2 | Frage deine Metriken IDs ab

Je nachdem welche Metrik du für deinen Report verwenden möchtest, musst du die zugehörige Metrik ID im Klaviyo System kennen. Bei Klaviyo sind Metriken IDs meisten sechsstellige Kombinationen aus kleinen und großen Buchstaben. Eine Liste der Metriken für deinen Account bekommst du über den Get Metrics Endpunkt mit einem GET Request.

Da du die Daten aus der Response nicht für das weitere Reporting benötigst kannst du den Request auch einfach in Postman Desktop oder Power Automate Desktop durchführen. Long story short, der Request, der dir die Übersicht deiner Metrik-IDs gibt, sieht (in Postman) wie folgt aus:

Klaviyo Metrics GET Request

Die zugehörige Authorisierung wird wie folgt konfiguriert (beachte das Leerzeichen zwischen dem Klaviyo-API-Key Präfix und dem tatsächlichen API Key):

Klaviyo Metrics GET Request Authorization

Raw sieht der Request wie folgt aus:

GET /api/metrics HTTP/1.1
Revision: 2023-07-15
Accept: application/json
Content-Type: application/json
Authorization: Klaviyo-API-Key pk_1aa111a...

Host: a.klaviyo.com
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

Du bekommst eine Response im JSON-Format zurück, die so aussieht:

Such dir die Metrik heraus, die du suchst und kopiere dir die Metrik ID heraus. In diesem Fall hätte z.B. die Metrik für Bounced Email die ID AbbCdC (im Beispiel verfremdet).

3 | Hol dir deinen Bericht über die Klaviyo API

Um die Daten für die gesuchte Metrik zu erhalten benötigst du nun den Query Metrics Aggregate Endpunkt der Klaviyo API.

Öffne Excel oder Power Bi und öffne den Power Query Editor (z.B. via Get Data) und erstelle eine Blank Query. Ziel ist es mit den Funktionen

  • Web.Contents() und
  • Json.Document()

einen POST Request an die Klaviyo API zu erstellen, die am Ende einen JSON-Body als Response zurückschickt. Da das Ganze super hakelig ist, habe ich dazu einen eigenen Post erstellt, der hier zu finden ist: Klaviyo API POST Request in POwer Query (Power Bi, Excel)

Kurzum sollte der M-Code in Power Query am Ende in etwas so aussehen (mit einem Mega langen und komplexen Body). Siehe für Infos zu dem Body den oben genannten Post.

Vergiss nicht, deinen API entsprechend zu hinterlegen und deine Metrik ID im Body einzutragen. Ich habe mich in meinem Beispiel für eine monatliche Auflistung der neuen Subsriber entschieden.

4 | Transformiere die Klaviyo Api Response

Als Response stellt Klaviyo ein wirklich nicht schönes JSON-Dokument bereit, das bei dir so aussehen müsste.

Klaviyo API Response

Dein Job ist es nun, das JSON Dokument zu navigieren (durch Klicks auf Record- und List-Links) und aus den verschiedenen Objekten eine brauchbare Tabelle zu bauen.

In meinem Fall – die monatlichen neuen Subscriber habe ich z.B. erst meine Monatsdates komplett ausgeklappt:

Klaviyo API Json Response Dates

(M-Code)

Table.FromList(Source[data][attributes][dates], Splitter.SplitByNothing(), null, null, ExtraValues.Error)

Den Dates eine Index Column verpasst:

Klaviyo API Json Response Index Column

(M-Code)

Table.AddIndexColumn(expanded_dates, "Index", 0, 1, Int64.Type)

Und am Ende die Subscriber Zahlen aus dem Data-Object extrahiert, die an dem jeweiligen Index zu finden waren:

Klaviyo API Json Response Data Count Column

(M-Code)

=Table.AddColumn(ObjectIndex, "Subs", each Source[data][attributes][data]{0}[measurements][count]{[Index]}, Int64.Type)

Zuletzt musste ich natürlich noch die Dates vernünftig formatieren und die Index-Column verschwinden lassen, aber mit einem Click auf Close & Load oben links hole ich mir das Ganze dann problemlos in mein Excel-Sheet oder Power-Bi-Modell hinein.

Klaviyo API Loaded Query Data

5 | Happy Reporting

Damit hast du nun eine solide Datenbasis und kannst die Klaviyo Tabelle in Excel oder Power Bi weiter verwenden für Tabellen und Graphen. Entsprechend: Happy Reporting.

PROBLEME MIT DER KLAVIYO REPORT-AUTOMATISIERUNG?

Solltest du Probleme mit der Automatisierung deiner Reports in Bezug auf Klaviyo (oder andere typische SaaS-Tools) haben, lass gerne einen Kommentar da. Solltest du schnelle Hilfe benötigen, schau mal bei https://thebigc-agency.de vorbei. Die Lösung wurde von THE BIG C Agency aus einem Projekt bereitgestellt. Die Agentur spezialisiert unter anderem in der Daten-Analyse und Bereitstellung für Start-Ups und KMUs.

Christoph Kleine
Christoph Kleine

... Managing Director bei THE BIG C Agency & Gründer von internetzkidz.de. Neben Online-Marketing beschäftigt er sich mit Usability, Web-Analytics, Marketing-Controlling und Businessplanung. Xing, LinkedIn.

Artikel: 463

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.