Skip to content

Instantly share code, notes, and snippets.

@hmbouk
Forked from yuhgto/outdated-monday-GraphQL-PowerBI.m
Last active March 19, 2024 13:14
Show Gist options
  • Save hmbouk/7fe3352e1b85d31ece726ec8af82dd24 to your computer and use it in GitHub Desktop.
Save hmbouk/7fe3352e1b85d31ece726ec8af82dd24 to your computer and use it in GitHub Desktop.
Loading GraphQL data (monday.com API v2) into PowerBI
// Playing around with a PowerBI query to pull data from monday.com into PowerBI
// This can come in handy when building PowerBI reports that utilize GraphQL endpoints for loading data.
let
Source = Web.Contents("https://api.monday.com/",
[
RelativePath="v2",
Headers=[
#"Method"="POST",
#"Content-Type"="application/json",
#"Authorization"="<your_personal_token_here>",
#"API-Version" = "2023-10"
],
Content=Text.ToBinary("{""query"": ""{ boards (ids: <your board ID here>) {items_page { items { id name column_values { column{title} text}}}}}""}")
]
),
#"JSON" = Json.Document(Source,65001),
data = JSON[data],
boards = data[boards],
boards1 = boards{0},
items_page = boards1[items_page],
items = items_page[items],
#"Converted to Table" = Table.FromList(items, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "name", "column_values"}, {"Column1.id", "Column1.name", "Column1.column_values"}),
#"Expanded Column1.column_values" = Table.ExpandListColumn(#"Expanded Column1", "Column1.column_values"),
#"Expanded Column1.column_values1" = Table.ExpandRecordColumn(#"Expanded Column1.column_values", "Column1.column_values", {"column", "text"}, {"Column1.column_values.column", "Column1.column_values.text"}),
#"Expanded Column1.column_values.column" = Table.ExpandRecordColumn(#"Expanded Column1.column_values1", "Column1.column_values.column", {"title"}, {"Column1.column_values.column.title"}),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded Column1.column_values.column",{{"Column1.column_values.column.title", type text}}),
#"Pivoted Column" = Table.Pivot(#"Changed Type", List.Distinct(#"Changed Type"[Column1.column_values.column.title]), "Column1.column_values.column.title", "Column1.column_values.text")
in
#"Pivoted Column"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment