Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ In this sample you will use Microsoft Graph Data Connect to analyze emails from

In this sample you will use Microsoft Graph Data Connect brings Microsoft 365 data and Azure resources to independent software vendors (ISVs). This system enables ISVs to build intelligent applications with Microsoft's most valuable data and best development tools. Microsoft 365 customers will gain innovative or industry-specific applications that enhance their productivity while keeping full control over their data.

## [Sales Analytics using M365 and Salesforce data](solutions/graph-data-sales-analytics/README.md)
This repository houses the Microsoft Data Graph Connect Solution Accelerator, which delivers a range of advantages, notably heightened insights encompassing email analytics, account sentiment analysis, and more. These insights are derived from the synergistic amalgamation of Salesforce Sales data (Opportunity) and Microsoft 365 data (Email).

<br />

# Give us your feedback
Expand Down
86 changes: 86 additions & 0 deletions solutions/graph-data-sales-analytics/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Microsoft Data Graph Connect Solution Accelerator

## Contents

1. [Solution Overview](#solution-overview)
2. [Solution Architecture](#solution-architecture)
- [Azure Services Used](#azure-services-used)
3. [Directory Structure](#directory-structure)
4. [Getting Started](#getting-started)
- [Pre-requisites](#pre-requisites)
- [Infrastructure Deployment](#infrastructure-deployment)
- [Synapse Pipeline](#synapse-pipeline)
- [PBI Report Report](#pbi-report-report)
5. [Feedback & Considerations](#feedback-considerations)

## Solution Overview
This repository houses the Microsoft Data Graph Connect Solution Accelerator, which delivers a range of advantages, notably heightened insights encompassing email analytics, account sentiment analysis, and more. These insights are derived from the synergistic amalgamation of Salesforce Sales data (Opportunity) and Microsoft 365 data (Email).

This solution encompasses essential components, including Azure resource deployment, Syanapse data pipelines, and a Power BI dashboard. These elements collectively empower organizations to seamlessly integrate and construct within their individual tenant environments.

## Solution Architecture

Upon completion of all steps, you will have a comprehensive end-to-end solution with the following architecture:

![Architecture](docs/media/Architecture.PNG)

### Azure Services Used

The solution leverages the following core Azure components:

- **Azure Synapse**: This analytics service caters to data warehouses and big data systems, centralizing data in the cloud for easy access. It offers a range of pipelines and activities, such as Data Flow and Custom activities, to connect to source data and copy it into Data Lake Storage.
- **Azure Datalake Storage**: A scalable data lake designed for high-performance analytics workloads. It stores input data and contextualized data in Delta tables within this solution.
- **Azure SQL Server and Database**: This component stores metadata used to extract data from Microsoft 365 to an ADLS (Azure Data Lake Storage) for additional processing.
- **Managed Identity**: Enables Azure resources to authenticate with cloud services.
- **Service Principal**: An Azure Active Directory application serving as the security principal for executing the data extraction process. It is responsible for creating, running, and approving data pipelines in Synapse for data extraction from Microsoft 365 to an ADLS.
- **Azure DevOps**: This component houses the source code, Infrastructure templates, and deployment pipeline files. Azure resources are deployed to an Azure resource group using deployment pipeline files.
- **Azure Key Vault**: A secure repository for storing secrets and keys crucial to the solution's operation.

## Directory Structure

Explore the following directories to gain insights into solution components within the solution framework:

- **[iac](iac)**: This directory contains Bicep files required for deploying the infrastructure.

- **[powerbi](powerbi)**: Here, you will find scripts pertinent to the solution.

- **[synapse](synapse)**: This directory encompasses Synapse files essential for the solution.

## Getting Started

To begin, clone or download this repository onto your local machine and meticulously follow the instructions detailed in each of the README files.

### Pre-requisites

Before embarking on the setup process, ensure the following pre-requisites are met:

- Microsoft 365 Data Connection: Establish a connection to your Microsoft 365 data for seamless integration. For detailed instructions, refer to [Microsoft 365 Data Connection Setup](https://learn.microsoft.com/en-us/viva/solutions/data-lakes/microsoft-graph-data-connect).

- Salesforce Data Connection: Establish a connection to your Salesforce Sales data (Opportunity) for integration. Refer to [Salesforce Data Connection Setup](https://learn.microsoft.com/en-us/azure/data-factory/connector-salesforce?tabs=data-factory).

- Azure Subscription: Ensure you have an active Azure subscription that is in the same tenant as your Microsoft 365 tenant. Both should be part of the same Azure AD tenancy.

- Service Principal: Create an Azure Active Directory (Azure AD) Service Principal to securely access Microsoft 365 and Salesforce Data. For guidance, please refer to [Service Principal Setup Guide](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal#register-an-application-with-azure-ad-and-create-a-service-principal).

### Infrastructure Deployment

For comprehensive instructions on infrastructure setup and usage, please consult the documentation [here](iac/README.md).

### Synapse Pipeline

For setup instructions and usage guidelines, please refer to the documentation [here](synapse/README.md).

### Power BI Report

Discover setup instructions and utilization guidance in the documentation [here](powerbi/README.md). Also, download the pre-created Power BI security report, designed to generate insights from data produced by the Synapse pipeline in Azure storage locations.

Link to download Power BI template: [SalesSentimentDashboard.pbit](powerbi/SalesSentimentDashboard.pbit)

## Feedback & Considerations

We wholeheartedly welcome your feedback as it contributes to the refinement of our solution.

Kindly note the following considerations:

- Regular updates may be performed to accommodate adjustments and fixes.
- Network graph visualizations in the Power BI template are limited to 1500 nodes.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
89 changes: 89 additions & 0 deletions solutions/graph-data-sales-analytics/iac/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# IAC Directory Structure

## Directories and Files

- **[arm](arm)**: Contains Bicep and JSON scripts for various Azure resources.

- **[iac](../Graph-Data-Connect-Solution/iac/)**: Holds deployment templates and pipeline files for the resources.

- **[bicep](../iac/bicep/)**: Contains templates for each resource, including the main deployment file "main.bicep".

- **[modules](../iac/bicep/modules/)**: Contains individual Bicep files for each resource, organized in separate subfolders.

- **[main.bicep](../iac/bicep/main.bicep)**: Encompasses deployment code for all resources present in the "modules" directory.

- **[main.parameters.json](../iac/bicep/main.parameters.json)**: Holds necessary parameters to execute "main.bicep". These parameters are retrieved from variable groups to avoid hardcoding.

- **[pipelines](../iac/pipelines/)**: Inside the "pipelines" directory, you'll find YAML files for deployment pipelines.

- **[azure_deploy.yml](.../iac/pipelines/azure_deploy.yml)**: Outlines steps to execute "main.bicep". It specifies branch triggers, the variable group supplying values for "main.parameters.json", and deployment stages for different environments.

# Azure Resources Deployment

The resources in this folder can be used to deploy the required cloud services into your Azure Subscription. You have two deployment options:

## Option 1: Deploy from Azure Portal

To deploy directly to Azure, click the following button:

<a href="https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fmicrosoftgraph%2Fdataconnect-solutions%2Fmain%2Fsolutions%2Fgraph-data-sales-analytics%2Fiac%2Farm%2Fazure_deploy.json"><img src="https://camo.githubusercontent.com/bad3d579584bd4996af60a96735a0fdcb9f402933c139cc6c4c4a4577576411f/68747470733a2f2f616b612e6d732f6465706c6f79746f617a757265627574746f6e" alt="Deploy Environment in Azure" /></a>

## Option 2: Use Azure DevOps Pipeline

### Prerequisites
To deploy Azure resources using Azure DevOps, ensure the following prerequisites are met:

1. **Azure DevOps Project Setup**: Set up an Azure DevOps Project and grant Basic User Access to relevant team members. Detailed instructions can be found in the [Create a project in Azure DevOps](https://learn.microsoft.com/en-us/azure/devops/organizations/projects/create-project?view=azure-devops&tabs=browser) documentation.

2. **Azure Service Principal Configuration**: Create an Azure Service Principal with Contributor permissions for the target Azure Resource Group. Follow the steps outlined in the [Creating a service principal](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal) guide.

3. **Azure DevOps Service Connection**: Establish an Azure DevOps Service Connection for seamless interaction. Learn how to set up service connections in [Service Connections in Azure Pipeline](https://learn.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml).

4. **Bicep Files**: Ensure your Bicep files are ready in your repository. The templates can be found in the provided repository ([link](../iac/bicep/)).

5. **Pipeline Configuration**: Configure Azure DevOps pipelines using the provided YAML files.

6. **Azure Subscription**: Verify that you have an active Azure subscription where you intend to deploy your resources. If not, you can create a new [Azure Subscription](https://azure.com/free).

7. **Azure Resource Group**: Create an Azure Resource Group in your subscription.

8. **Azure DevOps Variables**: Define Azure DevOps variables for your deployment parameters. More information can be found in the [Azure DevOps Variables](https://learn.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch) documentation.

### Deployment Process

To deploy resources to your Azure Resource Group or Subscription using Azure DevOps, follow these steps:

#### Step 1: Clone the Repository

Clone the repository to your Azure DevOps workspace.

#### Step 2: Review Bicep File

1. Navigate to the `iac/bicep` directory in your cloned repository.
2. Open the `main.bicep` file using a text editor or an IDE.
3. Review the [Bicep](../iac/bicep/) code to understand the Azure resources you are going to deploy. Make any necessary modifications or customizations.

#### Step 3: Create an Azure DevOps Pipeline

1. Log in to your Azure DevOps account.
2. Create a new project or use an existing one.
3. Go to the "Pipelines" section and click on "New Pipeline."
4. Choose the source repository (the one you cloned earlier) and configure your pipeline settings.

#### Step 4: Configure Pipeline Variables

1. Access the Azure Pipelines Library.
2. Modify Variable Values in the variable group based on deployment requirements.

#### Step 5: Save and Run the Pipeline

1. Save your pipeline configuration.
2. Trigger the pipeline execution to deploy Azure Resources.

#### Step 6: Verify Deployment

1. Once the pipeline completes successfully, log in to the Azure portal.
2. Navigate to the appropriate resource group and verify that the resources defined in the Bicep file have been deployed.

By following these steps, you can efficiently deploy Azure resources using Azure DevOps, ensuring a smooth provisioning process and clear monitoring of deployments.

Loading