Hent en indholdstype fra content type hub'en med Power Automate
Siden 2021 skubbes indholdstyper fra hub’en ikke længere ud til alle websteder. addCopyFromContentTypeHub henter dem, med Send an HTTP request to SharePoint og webstedets id.
Indholdstyper, der udgives fra content type hub’en, bliver ikke længere skubbet ud til alle websteder. Microsoft skiftede i 2021 fra “push everywhere” til “pull as needed”: et websted får en udgivet indholdstype, når den hentes. Et websted, der aldrig har brugt den, har den ikke, og så kan en liste heller ikke få den med AddAvailableContentType.
Den hentes med addCopyFromContentTypeHub. Det er et Graph-kald, men SharePoints eget v2.0-API har samme adresse under _api/v2.0, så Send an HTTP request to SharePoint kan kalde det uden en appregistrering og uden Premium. Sådan er mit flow bygget, efter C5 Insights “How to pull custom content types from hub using Power Automate REST API”.
Webstedets id#
v2.0-adressen vil have webstedets id, ikke adressen. Mere om id’et i Find et websteds id i SharePoint.
Site Address: @{variables('varDestinationSite')}
Method: GET
Uri: _api/site?$select=Id
Headers:
{
"Accept": "application/json;odata=nometadata",
"Content-Type": "application/json;odata=nometadata"
}
Id’et ligger i body('Send_an_HTTP_request_to_SharePoint_-_Get_SiteID')?['Id'] og sættes i varSiteID.
Hent indholdstypen#
Site Address: @{variables('varDestinationSite')}
Method: POST
Uri: _api/v2.0/sites/@{variables('varSiteID')}/contentTypes/addCopyFromContentTypeHub
Headers:
{
"Content-Type": "application/json;odata=nometadata"
}
Body:
{
"contentTypeId": "<indholdstypens id>"
}
Id’et står i adressen, når indholdstypen åbnes i hub’en under Webstedsindstillinger → Webstedsindholdstyper (ctype=0x0101…). Jeg lægger begge kald i et scope.

Svaret#
Graph-dokumentationen beskriver to svar:
- 200 OK med indholdstypen: den er på webstedet nu.
- 202 Accepted med en
Location-header: kopieringen kører i baggrunden og kan tage op til 70 minutter.
Et flow, der lægger indholdstypen på en liste lige bagefter, fejler ved 202. Statuskoden tjekkes derfor, før det næste kald: outputs('…')?['statusCode'].
På en liste#
Når indholdstypen er på webstedet, lægges den på listen med AddAvailableContentType('<id>'), som i Opret en liste og styr indholdstyperne med REST fra Power Automate.
Graph kan også hente direkte til en liste: sites/<site-id>/lists/<liste-id>/contentTypes/addCopyFromContentTypeHub. Den kommer så også på webstedet. Samme vej gennem _api/v2.0 har jeg ikke efterprøvet.
Hvilke kan hentes#
Graph har GET sites/<site-id>/contentTypes/getCompatibleHubContentTypes, som viser de udgivne indholdstyper, webstedet kan hente. Gennem _api/v2.0 har jeg ikke efterprøvet den.
Opdateret i hub’en#
Samme kald igen. Microsoft beskriver det som “add or sync”: findes indholdstypen på webstedet, bliver kopien opdateret fra hub’en.
Det der driller#
- Id, ikke sti.
_api/v2.0/sites/<site-id>/…med id’et fra_api/site. En serverrelativ sti somsites/<websted>eftersites/er ikke en gyldig adresse i Graph-formen. - 202 er ikke en fejl, men indholdstypen er der ikke endnu.
- Kun udgivne indholdstyper. En indholdstype, der ikke er udgivet i hub’en, kan ikke hentes.
- Rettigheder. Forbindelsens konto skal kunne administrere indholdstyper på webstedet.
- Ikke Premium. Send an HTTP request to SharePoint hører til SharePoint-connectoren.