LogoLogo
Documentation and Guides
Documentation and Guides
  • ABOUT APONO
    • Why Choose Apono
    • Security and Architecture
    • Glossary
  • GETTING STARTED
    • How Apono Works
    • Getting started
    • Access Discovery
    • Integrating with Apono
  • CONNECTORS AND SECRETS
    • Apono Integration Secret
    • High Availability for Connectors
    • Installing a connector with Docker
    • Manage integrations
    • Manage connectors
  • AWS ENVIRONMENT
    • AWS Overview
    • Apono Connector for AWS
      • Installing a connector on EKS Using Terraform
      • Updating a connector in AWS
      • Installing a connector on AWS ECS using Terraform
    • AWS Integrations
      • Integrate an AWS account or organization
        • Auto Discover AWS RDS Instances
        • AWS Best Practices
      • Amazon Redshift
      • RDS PostgreSQL
      • AWS RDS MySQL
      • Integrate with EKS
      • AWS Lambda Custom Integration
      • EC2 via Systems Manager Agent (SSM)
  • AZURE ENVIRONMENT
    • Apono Connector for Azure
      • Install an Azure connector on ACI using Azure CLI
      • Install an Azure connector on ACI using PowerShell
      • Install an Azure connector on ACI using Terraform
      • Updating a connector in Azure
    • Azure Integrations
      • Integrate with Azure Management Group or Subscription
        • Auto Discover Azure SQL Databases
      • Azure MySQL
      • Azure PostgreSQL
      • Integrate with AKS
  • GCP ENVIRONMENT
    • Apono Connector for GCP
      • Installing a GCP connector on Cloud Run using CLI
      • Installing a GCP connector on GKE using CLI (Helm)
      • Installing a GCP connector on GKE using Terraform
      • Updating a connector in Google Cloud
    • GCP Integrations
      • Integrate a GCP organization or project
      • CloudSQL - MySQL
      • CloudSQL - PostgreSQL
      • Google Cloud Functions
      • Integrate with GKE
      • AlloyDB
  • KUBERNETES ENVIRONMENT
    • Apono Connector for Kubernetes
      • Installing a connector on Kubernetes with AWS permissions
      • Updating a Kubernetes connector
    • Kubernetes Integrations
      • Integrate with Self-Managed Kubernetes
  • ADDITIONAL INTEGRATIONS
    • Databases and Data Repositories
      • Microsoft SQL Server
      • MongoDB
      • MongoDB Atlas
      • MongoDB Atlas Portal
      • MySQL
      • Oracle Database
      • PostgreSQL
      • Redis Cloud (Redislabs)
      • Snowflake
      • Vertica
      • MariaDB
    • Network Management
      • SSH Servers
      • RDP Servers
      • Windows Domain Controller
      • AWS EC2 SSH Servers
      • Azure VM SSH Servers
      • Installing the Apono HTTP Proxy
    • Development Tools
      • GitHub
      • Rancher
    • Identity Providers
      • Okta SCIM
      • Okta Groups
      • Okta SSO for Apono logins
      • Google Workspace (Gsuite)
      • Google Workspace (GSuite) Groups
      • Azure Active Directory (Microsoft Entra ID)
      • Azure Active Directory (Entra ID) Groups
      • Jumpcloud
      • JumpCloud Groups
      • OneLogin
      • OneLogin Group
      • LDAP Groups
      • The Manager Attribute in Access Flows
      • HiBob
      • Ping Identity SSO
    • Incident Response Integrations
      • Opsgenie
      • PagerDuty
      • VictorOps (Splunk On-Call)
      • Zenduty
    • ChatOps Integrations
      • Slack integration
      • Teams integration
      • Backstage Integration
  • WEBHOOK INTEGRATIONS
    • Webhooks Overview
    • Anomaly Webhook
    • Audit Log Webhook
    • Request Webhook
      • Custom Webhooks
      • Communications and Notifications
        • Slack Outbound Webhooks
        • Teams
        • Outlook and Gmail (Using Azure Logic App)
      • ITSM
        • Freshdesk
        • Jira
        • ServiceNow
        • Zendesk
        • Freshservice
        • ServiceDesk Plus
      • Logs and SIEMs
        • Coralogix
        • Datadog
        • Logz.io
        • Grafana
        • New Relic
        • SolarWinds
        • Sumo Logic
        • Cortex
        • Logpoint
        • Splunk
        • Microsoft Sentinel
      • Orchestration and workflow builders
        • Okta Workflows
        • Torq
    • Integration Webhook
    • Webhook Payload References
      • Audit Log Webhook Payload Schema Reference
      • Webhook Payload Schema Reference
    • Manage webhooks
    • Troubleshoot a webhook
    • Manual Webhook
      • ITSM
        • PagerDuty
  • ACCESS FLOWS
    • Access Flows
      • What are Access Flows?
    • Create Access Flows
      • Self Serve Access Flows
      • Automatic Access Flows
      • Access Duration
    • Manage Access Flows
      • Right Sizing
    • Revoke Access
    • Dynamic Access Management
      • Resource and Integration Owners
    • Common Use Cases
      • Ensuring SLA
      • Protecting PII and Customer Data
      • Production Stability and Management
      • Break Glass Protocol
    • Create Bundles
    • Manage Bundles
  • ACCESS REQUESTS AND APPROVALS
    • Slack
      • Requesting Access with Slack
      • Approving Access with Slack
    • Teams
      • Requesting Access with Teams
      • Approving Access with Teams
    • CLI
      • Install and manage the Apono CLI
      • Requesting Access with CLI
    • Web Portal
      • Requesting Access with the Web Portal
      • Approving Access with the Web Portal
      • Reviewing historical requests with the Web Portal
    • Freshservice
    • Favorites
  • Inventory
    • Inventory Overview
    • Inventory
    • Access Scopes
    • Risk Scores
    • Apono Query Language
  • AUDITS AND REPORTS
    • Activity Overview
      • Activity
      • Create Reports
      • Manage Reports
    • Compliance: Audit and Reporting
    • Auditing Access in Apono
    • Admin Audit Log (Syslog)
  • HELP AND DEBUGGING
    • Integration Status Page
    • Troubleshooting Errors
  • ARCHITECTURE AND SECURITY
    • Anomaly Detection
    • Multi-factor Authentication
    • Credentials Rotation Policy
    • Periodic User Cleanup & Deletion
    • End-user Authentication
    • Personal API Tokens
  • User Administration
    • Role-Based Access Control (RBAC) Reference
    • Create Identities
    • Manage Identities
Powered by GitBook
On this page
  • Prerequisites
  • Deploy Azure Logic App Flow
  • Create the webhook
  • Results

Was this helpful?

Export as PDF
  1. WEBHOOK INTEGRATIONS
  2. Request Webhook
  3. Communications and Notifications

Outlook and Gmail (Using Azure Logic App)

Create an outgoing webhook in Apono that will send emails to Outlook / Gmail based on Apono access requests using Azure Logic App

PreviousTeamsNextITSM

Last updated 4 months ago

Was this helpful?

An Azure Logic App integration can seamlessly connect with Outlook or Gmail using their respective APIs to send Apono access requests events. By configuring triggers to initiate actions based on specified conditions, the Logic App can efficiently gather the necessary data and format it appropriately for transmission.

Utilizing Azure's secure connectivity and workflow automation capabilities, this integration ensures reliable and timely delivery of event notifications to users' Outlook or Gmail accounts, streamlining communication and enhancing productivity.


Prerequisites

  1. An Azure account with subscription (Create an Azure account ).

  2. An Azure workflow Logic App of your choice (Create an Azure logic app ).


Deploy Azure Logic App Flow

In Azure portal search for Logic App and choose the Logic App you want to use.

Under Logic app designer do the following:

Add workflow trigger fires "When a HTTP request is received"

Add the following Request Body JSON Schema and save.

{
    "type": "object",
    "properties": {
        "email": {
            "type": "string"
        },
        "cc": {
            "type": "string"
        },
        "subject": {
            "type": "string"
        },
        "body": {
            "type": "string"
        }
    }
}

As follow:

Send request events to Outlook API

  1. Press on the + button to add an action and search for Outlook. Under the Gmail API choose Send an email (V2), as follow:

  1. In Send an email (V2) action, configure the "When a HTTP request is received" trigger values by standing on each value input and press on the lightning icon and choose the relevant value as follow and save:


Send request events to Gmail API

  1. Press on the + button to add an action and search for Gmail. Under the Gmail API choose Send email (V2), as follow:

  1. In Send email (V2) action, configure the "When a HTTP request is received" trigger values by standing on each value input and press on the lightning icon and choose the relevant value as follow and save:


Create the webhook

Follow these steps to configure a webhook:

  1. Click Request Webhook.

  2. Enter a unique, alphanumeric, user-friendly Request Webhook Name for identifying this webhook.

  3. Click the Status toggle to Active.

  4. From the Method dropdown menu, select POST

  5. In the URL field, enter the Workflow URL for the Logic App. This is located on the Overview page in your Azure Portal

The webhook URL must adhere to the following requirements:

  • Uses the HTTPS protocol

  • Does not specify any custom ports

  1. In the Body Template field, construct a JSON body for the webhook payload.

{
   "email": "<OUTLOOK/GMAIL_MAILBOX_TO_SEND_THE_EVENTS>",
   "cc": "<LIST_OF_OUTLOOK/GMAIL_MAILBOXS_TO_SEND_THE_EVENTS_SEPARATED_BY_A_SEMICOLON_OR_A_COMMA>",
   "subject": "New {{event_type}} request event from Apono made by {{data.requester.name}}",
   "body": "<p>We are excited to inform you about a new event request that requires your attention</p><p>Event Type: {{event_type}}</p><p>Event Time: {{event_time}}</p><p>Integration: {{data.access_groups.[0].integration.name}}</p><p>Requester Name: {{data.requester.name}}</p><p>Requester Email: {{data.requester.email}}</p>"
}
  1. From the Triggers dropdown menu, select one or more of the following event triggers, which correspond to Apono access request statuses:

    • RequestCreated

    • RequestApproved

    • RequestExpired

    • RequestFailed

    • RequestGranted

    • RequestRejected

  2. Under Filters, define one or several filter from the listed dropdown menus.

Filters empower admins to control the data transmitted via webhooks, minimizing the amount of data third-party tools receive and reducing unnecessary clutter.

Examples:

  • Send only production requests to your admins' Slack channel.

  • Trigger Okta workflows for events from specific integrations or resource types.

  • Open a ticket in Jira or ServiceNow for manually approved requests.

  1. (Optional) In the Timeout in seconds field, enter the duration in seconds to wait before marking the request as failed.

  2. (Optional) Define Response Validators to verify that the response from the webhook meets specified criteria:

    1. Click + Add. A row of settings appears.

    2. Starting with $.data., enter the Json Path of the JSON parameter.

    3. In the Expected Values field, enter a value and press the Enter key on your keyboard.

    4. Repeat step c to add several expected values.

    5. Repeat steps a-d to add multiple response validators.

  3. Click Test to generate a test event to trigger your webhook. A Test successful or Test failed response status will appear at the bottom of the page. A successful test will send mock data to the target system.

For more information about the test, click View Invocation Data. A panel opens revealing the request, response, and other relevant details.

  1. Click Save Webhook.

The new webhook appears in the Webhooks table. Active webhooks are preceded by a green dot. Inactive webhooks are preceded by a white dot.

Apono access request logs will be sent to Outlook and Gmail based on the triggers you have selected.


Results

Your webhook should now start sending emails using Azure Logic App to Outlook / Gmail once triggered:

On the page, click Add Webhook. The Add Webhook page appears.

Click View event's payload schema to reveal the payload schema and available data fields. You can also refer to the to read the descriptions of each data field.

Should your test fail, view these tips to .

here
here
Webhooks
Webhook Payload Schema Reference
troubleshoot your webhook