[ Updated September 12, 2018 - Changed instructions to create an app registration made through the Azure portal and updated the screens to make the custom connector to match product revisions. ]
This post describes how to create a custom connector (API connector) to call the Microsoft Graph API from PowerApps and Flows. This process is especially helpful to know when you would like to use the MS Graph API from a PowerApp and/or Flow and there is no connector available for the MS Graph API you wish to invoke.
Register an application and specify permissions
The first step is registering an application in the Microsoft Azure Portal.
1. Sign into the https://portal.azure.com with an account that has permissions to make Azure Active Directory applications.
2. In the menu on the left, click
Azure Active Directory
3. Click
App registrations
4. Click
New application registration
5. Enter a
Name
Note: Throughout this example, the name
IgniteCustomConnector is used.
6. In Application type, select
Web app / API
7. In Sign-on URL enter
https://msmanaged-na.consent.azure-apim.net/redirect
8. Copy the
Application ID value
9. Open
Notepad or another text editor
10.
Paste the
Application ID in the text file
11.
Save the text file
12. Click
Settings
13. Click
Keys
14. In the Passwords section enter a key
Description
15. Select a value in the
Expires drop down list
16. Click
Save
17.
Copy the
key value
18. Open
Notepad or another text editor
19.
Paste the key value in the text file
20.
Save the text file
21. Click
Required permissions
22. Click
Add
23. Click
Select an API
24. Select
Microsoft Graph
25. Click
Select
The next step is granting the delegated permissions your application needs to interact with the MS Graph API.
In this example we need the
Read directory data (Directory.Read.All) and the
Read all groups (Group.Read.All) delegated permissions.
26. In the
DELEGATED PERMISSIONS section, select the check boxes next to
Read directory data and
Read all groups.
27. Click
Select
28. Click
Done
Note: When developing your own apps, make sure you add the permissions your application needs to perform other operations with the MS Graph API.
Generate Swagger File
The API you use in the custom connector is described in JSON format.
1. Open
Postman
2. Click
Collections

3. Click the
new collection button

4. In the
Name textbox, enter a name for the collection
Note: In this example, the name
IgniteDemo is used.
5. Click
Create
The collection bundles all of the Graph API calls we wish to make available in the custom connector.
6. In the
Get textbox, enter the
URL of the Graph API you wish to invoke
In this example, we are calling two different Graph APIs so we enter each URL one at a time and save it to the collection.
Return the members of an AAD Group:
https://graph.microsoft.com/v1.0/groups/:groupId/members
Return the tasks in a bucket in a Microsoft Planner plan
https://graph.microsoft.com/v1.0/planner/buckets/:bucketId/tasks
Notice the path parameter is in the ‘:groupId’ format

7. Click the
Save button

8. In the
Save to existing collection / folder dropdown list, select the collection you created
9. Click
Save
10. To add another MS Graph API call, click the
+ button, then repeat the steps to add the URL and save it to the collection

Here you can see both of the example MS Graph API calls we are making in Postman.

11. Click the
ellipses button for the collection you created and select
Export

12. Select the
Collection V1 radio button
13. Click
Export

14. Select a folder on your computer
15. Click
Save
Create custom connector
1. In a web browser, open the
PowerApps web app in Office 365
https://web.powerapps.com
2. Click
Data, then click
Custom Connectors
3. Click
Manage custom connectors
4. Click the
+ Create custom connector button
5. Select
Import a Postman collection
6. Click the
folder button
7. Select the
JSON file you exported from Postman
8. Click
Open
9. Enter the
custom connector name
Note: In this example, the name
IgniteCustomConnector is used.
10. Click
Continue

11. Click
Security
12. In the
Choose what authentication is implemented by your API dropdown list, select
OAuth 2.0
13. In the
OAuth 2.0 section, in the
Identity Provider dropdown list, select
Azure Active Directory (Outlook works too)
14. In the
Client id text box, enter the
Application Id you saved to Notepad
15. In the
Client Secret text box, enter the
Key value you saved to Notepad
16. In the
Scope text box, enter the
permissions you configured when you made the application (
Directory.Read.All, Group.Read.All)
17. In the
Resource URL text box, enter https://graph.microsoft.com
18. Click
Definition

14. Change the
Operation Id to a valid name format. In this case, we use
GetMembers and
GetTasks

15. Click
Create connector
16. Click the
Test tab
17. Click
New connection
18. Click
Create
19. Sign in to your Office 365 account
Note: the account you use must be an
admin account
20. Click
Accept
Note: if you get this error in this step, please check the redirect URL of the application is configured right.

21. After the connection is added, navigate to the
Test step again
22. Select the connection you just created
23. Test each operation you created, then copy the
Response Body and save each Response body to a separate text file
For more information about the parameters, see this document.
https://developer.microsoft.com/en-us/graph/docs/concepts/overview
Testing the GetMembers operation
Note: Make sure the result is not empty.
Testing the GetTasks operation
Note: Make sure the result is not empty.

24. In
Definition tab, scroll to
Response section
25. Click
Add default response, then paste in the corresponding
Response Body you saved in the text files into the
Body textbox. Do this for both of the actions.
26. Click
Import

27. Click
Update Connector
The Custom Connector for Microsoft Graph is now ready to use!
Add the custom connector to a PowerApp and test
These steps describe how to configure a connection with custom connector in a PowerApp. This PowerApp will list the members of an AAD Group.
1. Create a new PowerApp by clicking the
New app button

2. Select the
Blank app with Phone layout

3. Select
Insert on top navbar
4. Click
Gallery
5. Select
Vertical to add a gallery control

6. Select the gallery control
7. Click the
dropdown arrow in the Gallery1 options
8. Click the
Add a data source button

9. Select the connection for the custom connector
10. Modify the Items attribute of the gallery to use
.GetMembers(“GROUP ID”).value
11. Replace the
with the name of the data connection
12. Replace the
GROUP ID with your own AAD Group Id
13. Change the layout of the gallery to
Title and subtitle, then select
mail in
Subtitle2 and select
displayName in
Title2

14. Click
Run on top navbar, the list of users is shown in the gallery
Add the custom connector to a Flow and test
These steps describe how to configure a connection with a custom connector in a Flow. This Flow will list the members of an AAD Group.
1. Navigate to
https://flow.microsoft.com
2. Click
My flows
3. Click
Create from Blank
4. Click
Create from Blank again
5. Create a
Schedule – Recurrence trigger, and configure it like this

6. Click
New Step
7. Click
Add an action
8. In the
search textbox enter
Ignite
9. Click
IgniteCustomConnector – Get Members
9. In the
groupId textbox enter your own AAD GroupId

10. Click the
ellipses for the action that returns the group members
11. Click
Rename
12. Enter
Get Members

13. In the
Flow name enter
Test Graph API
14. Click
Save
15. Click the
back arrow
16. Click
More > Run now in the Flow detail page

17. Click
Run flow in popup window
18. Click
See flow run activity
19. Click the last entry in the Flow run log

20. Click the
Get Members action to expand it
21. Scroll through the
output of the GetMembers action to see the AAD Group members
