This post was most recently updated on March 5th, 2019.2 min read.
Office 365 Planner is a neat tool for task management. However, when you, for whatever use case, need to form urls that point you towards a single task (or a bucket, or a plan for that matter), you might run into trouble with how the url is formed. Custom domains actually make it a bit complicated, but luckily there’s a workaround!
Description of the issue
If you have multiple domains in your Azure AD, your Planner might end up using your custom domain in its urls. However, if you need to develop some multi-tenant code, that works with any tenant and whatever weird custom domains, you’d have to actually either create another user-supplied property (for the custom domain), or develop some creative extra code to fetch the domains from somewhere… Since the Graph API for Planner certainly does NOT return that!
No worries – you don’t actually need to develop any complicated or smart code. It’s actually WAY easier than that!
So – Graph API does not return any urls for Plans, Planner or any Tasks you might get from the API. That might complicate any custom functionality you’d maybe want to create… But you can just access Planner to see the urls (see the picture below), and if need be, take note of the custom domain included!
This should help us figure out, how the urls are constructed. Let’s see…
Now, links to single tasks will be like this:
Pretty horrible, right? No worries, though! You can also create short links, like this:
That’s a lot better, right? But we STILL have that darn custom domain there! What can we do about it?
Ah – it’s actually simple. Just replace the custom domain with your built-in cloud domain, like this:
And there you go! According to my testing, it seems like the task ids are always unique, and even with the built-in domain Planner will handle redirections just fine by itself.
If you want to make it even simpler, you can also remove the “en-us” from the url, and Planner will just figure out which locale to use itself. So the end result:
And there you go!