System Design

we have outlined a walkthrough of an E2E scenario which utlises both connectors through a canvas app and two distinct flows

About Hero

System Architecture

The user interacts with the power app to input data into the data fields which utilises the flow. The flow is part of Power Automate and is responsible for giving the connectors any meaning. It is what uses the connectors and calls their relevant actions. In our context, the flow uses custom connectors and creates a POST request to the WebEx API to make a meeting. The API returns a response to the flow; using the date set by the user, the Outlook connector creates a POST request using the "create_event" action to add the meeting to the Doctor's Outlook calendar. Additionally, the JSON response body from the WebEx is then parsed to extract the URL for the WebEx meeting and then the WhatsApp flow uses the parsed body to call an action "send_message" to the WhatsApp API which sends a message of the meeting to the relevant WhatsApp number. A response is also sent to the Flow which indicates a success or failure to send the message which is then forwarded to the Power App.

The power app acts like a layer of abstaction. It requests the user for input that will be used as part of the JSON body for the API calls made to the Webex and the WhatsApp APIs. The keyed in values are used within a flow, to link the user input to the specific parts of the JSON body in the http post request.



Packages and APIs

WhatsApp Business Cloud API

The WhatsApp API was used for our WhatsApp connector. We used the send message function of the API as our action and each time the connector is used, for any organisation's flow, the connector will connect to the WhatsApp API to execute the functionality.

WebEx API

The WebEx API was used for the WebEx connector and would have a series of actions: create meeting, create invitee, delete meeting, edit meeting, read meetings. Each of these would call the WebEx API when said action was triggered. The create meeting would create a meeting link; the create invitee would create the invitee, in our case, the delete meeting action would delete the meeting link so if the link was used after this action, the meeting would not be found and the read meeting which gives information on the meetings created.