# Microsoft Graph API Integration

Microsoft Graph API enables secure and scalable communication with Microsoft 365 services, including sending emails through organizational accounts, using Azure-based authentication and permission controls. This eliminates reliance on traditional SMTP methods while ensuring reliable and compliant communication.

Integrating OvalEdge with Microsoft Graph API allows email notifications to be sent via an Azure-registered application, providing enhanced security through modern authentication and centralized permission management.

The integration involves configuring Tenant ID, Client ID, Client Secret, and Mail.Send permission, enabling OvalEdge to securely send notifications for alerts, workflows, system updates, and user activities.

## Purpose

This document describes the process for integrating OvalEdge with the Microsoft Graph API to send email notifications using Microsoft Azure.

## Feature Overview

OvalEdge supports sending notifications via Microsoft Graph API through an Azure-registered application, ensuring secure and permission-controlled delivery.

## Functional Description

Administrators must register an application (OvalEdge) in Azure, obtain the required credentials, and configure them in the OvalEdge System Settings to enable email notifications.

## Prerequisites

To configure Microsoft Graph API integration with OvalEdge, ensure the following requirements are met:

* Microsoft Azure account with administrative access
* Registered application in Azure Active Directory
* Valid organizational email address for sending notifications
* Access to OvalEdge System Settings

## Workflow

To enable this feature, the following functional steps are required:

### Step 1: Azure Setup&#x20;

#### Register OvalEdge as an Application in Azure

1. Sign in to the[ Azure Portal](https://portal.azure.com) with admin credentials.
2. Go to **Azure Active Directory** from the left navigation menu.
3. Click **App registrations** > + **New registration**.<br>

   <figure><img src="/files/nhvR7mihzjtBH7Puvo5T" alt=""><figcaption></figcaption></figure>
4. In the **Name** field, enter: OvalEdge (recommended for easy identification)<br>

   <div align="left"><figure><img src="/files/6WvwoeLtdc5HagYSRFFB" alt=""><figcaption></figcaption></figure></div>
5. Set the Supported account types to: **Accounts in this organizational directory only (Single tenant)**
6. Leave **the Redirect URL** empty (not needed for this use case).
7. Click **Register**.

#### Configure Credentials for Authentication

**Generate Client Secret**

1. Go to **Certificates & secrets** in the left menu of your registered app.
2. Under **Client secrets**, click **+ New client secret**.
3. Provide a description (e.g., OvalEdgeAppSecret).
4. Choose an expiry (recommend 12 months or 24 months).
5. Click **Add**.
6. Copy the generated client secret value immediately. This value will not be shown again.<br>

   <figure><img src="/files/X02UQQmTFYbjlH8eSSSI" alt=""><figcaption></figcaption></figure>

**Retrieve Tenant ID and Client ID**

1. Go to the app's Overview page.
2. Copy the **Tenant ID** and **Client ID**<br>

   <figure><img src="/files/0bqHDYpkJ8ThsEZ2r38j" alt=""><figcaption></figcaption></figure>
3. These will be required in the OvalEdge system settings.

#### Grant API Permissions

1. In your app, go to **API permissions** > **+ Add a permission**.

   <figure><img src="/files/3TB6PeZagB3ymX6yevcX" alt=""><figcaption></figcaption></figure>
2. Select **Microsoft Graph**.
3. Click **Application** permissions.

   <figure><img src="/files/PGpHz16P504q39HUjfhj" alt=""><figcaption></figcaption></figure>
4. Search for and select the permission:
   1. Mail.Send

      <figure><img src="/files/PynuaGHqK0HHkSQz56Kv" alt=""><figcaption></figcaption></figure>
5. Click **Add permissions**.
6. In the API permissions list, click '**Grant admin consent for \[OvalEdge]**'.
   1. When prompted, review the confirmation dialog and click **Yes** to proceed.
   2. Ensure the status updates are set to '**Granted**' for \[OvalEdge].

<figure><img src="/files/CVhy8LNsVsvU84ajeF0X" alt=""><figcaption></figcaption></figure>

#### Set Up Sender Email

1. Choose or create an email address to be used for sending notifications.
   1. Example: <xyz@ovaledge.com>
   2. The email should be: A valid organization account.
   3. Active and accessible. Preferably a no-reply mailbox (optional, based on use case).
2. The Azure-registered app will use this address as the “From” sender in all email notifications.

### Step 2: Configure OvalEdge System Settings

1. Log in to OvalEdge as an admin.
2. Navigate to **System Settings** > **Notification** > **Azure Graph API**.
3. Enter the values below:

<table><thead><tr><th width="329">Key</th><th>Value</th></tr></thead><tbody><tr><td>ovaledge.azure.graphapi.emailaddress</td><td>Sender email (e.g., ovaledge@yourdomain.com)</td></tr><tr><td>ovaledge.azure.graphapi.tenantid</td><td>Tenant ID from Azure</td></tr><tr><td>ovaledge.azure.graphapi.clientid</td><td>Client ID from Azure</td></tr><tr><td>ovaledge.azure.graphapi.clientsecret</td><td>Client Secret from Azure</td></tr></tbody></table>

### Step 3: Test the Integration

1. Go to **System Settings** > **Notification** in OvalEdge.
2. Use the Test Email function to send a sample notification

<figure><img src="/files/aorSBs3SlT1o8wObqccA" alt=""><figcaption></figcaption></figure>

3. Confirm email has been received successfully.

<figure><img src="/files/rmmehyfgiRKtWfeZVsa9" alt=""><figcaption></figcaption></figure>

***

Copyright © 2026, OvalEdge LLC, Peachtree Corners, GA, USA.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ovaledge.com/release8.1/installation-and-settings/integrations-with-enterpirse-apps/microsoft-graph-api-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
