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
  • Build a workflow

Was this helpful?

Export as PDF
  1. ACCESS REQUESTS AND APPROVALS

Freshservice

Integrate Freshservice and Apono with your access requests

PreviousReviewing historical requests with the Web PortalNextFavorites

Last updated 1 month ago

Was this helpful?

Integrating Freshservice with Apono allows users to create a Freshservice ticket that triggers an access request in Apono. Depending on your preferred workflow, you can then manage approvals in Slack, Microsoft Teams, CLI, or the Apono web portal.

This solution is customizable. Approvals can either be handled within Freshservice or through Apono’s approval flows in external tools.


Prerequisites

Item
Description

Apono API Token

Apono IDs

Apono identifiers required for the Freshservice integration:

  • Integration ID

  • Resource ID

  • Permissions

Follow these steps to obtain these IDs:

  1. From the Integration dropdown menu, select one integration. Only the resources associated with the integration will be displayed.

  2. Click a resource from the list. The Entitlements Details panel appears.

  3. From the page URL, copy the values for the integration and resourceId query strings.

  4. In the Entitlements Details panel, on the Entitlements tab, copy each of the values under the PERMISSION column.

Freshservice Admin Permission

Permission to manage all features except billing


Build a workflow

Freshservice's user interface and features may change over time. If any of the following steps have changed, please refer to .

Freshservice's Workflow Automator allows you to define the events and conditions that trigger an access request, and configure the necessary web requests to communicate with the Apono API.

Follow these steps to build a workflow:

  1. In Freshservice, click Admin. The admin page appears.

  2. In the search field, enter Workflow Automator.

  3. Click Workflow Automator. The Workflow Automator page appears.

  4. Click New Workflow. The New Workflow panel opens.

  5. Enter a meaningful Title for the workflow.

  6. Select the relevant Module.

  7. Under Workflow Type, select Event Based Workflow.

  8. Click Create. The New Workflow panel closes and the Event panel opens.

  9. Define the event that triggers this workflow.

Defining an Event

Follow these steps to define an event:

  1. In the first field, build the event from the dropdown options.

  2. Select who can perform the event.

  3. Click Done. The Event panel closes. The module appears on the canvas.

  1. (Optional) Define a condition for the event.

Defining a Condition

Follow these steps to define a condition:

  1. From the side menu, click and drag a Condition module to the canvas. The Condition panel opens.

  2. Define the condition with the Match or Build Expression option.

  3. Click Done. The Condition panel closes. The module appears on the canvas.

  1. Define a web request to retrieve the user's ID.

Defining a Web Request

Follow these steps to retrieve the user's ID:

  1. From the side menu, click and drag a Web Request module to the canvas. The Web Request panel opens.

If a condition has been added, be sure that the module is positioned at the end of the YES branch

  1. Under Request Type, select GET.

  2. Under Endpoint, enter https://api.apono.io/api/v2/users/{{ticket.from_email}}.

  3. From the Credentials dropdown menu, select Inline Credential.

  4. From the Authentication Type dropdown menu, select API key.

  5. Under Key, enter Authorization.

  6. Under Value, enter Bearer APONO_API_TOKEN. Be sure to replace APONO_API_TOKEN with the value of your Apono personal API token.

  7. At the bottom of the panel, in the Enter Label field, add a label for the web request module, such as Grab User ID.

  8. Click Done. The Web Request panel closes. The module appears on the canvas.

  1. Parse the user ID.

Defining a JSON Parser

Follow these steps to define the JSON parser:

  1. From the side menu, click and drag a JSON Parser module to the canvas. The JSON Parser panel opens.

  2. Under Source, click { + }. The Placeholders menu appears.

  3. Click Web Request Fields > response_body.

  4. Click X to close the Placeholders menu.

  5. Copy and paste the following JSON object into the JSON field.

{
  "id": "1234567890345678",
  "email": "peter.parker@dailybugle.com",
  "first_name": "Peter",
  "last_name": "Parker",
  "active": true
}
  1. Click Generate Output to generate the fields necessary for the next step. The output appears in the Output panel.

  2. In the Enter Label field, enter a label for the module, such as Parse User ID.

  3. Click Done. The JSON Parser panel closes. The module appears on the canvas.

  1. Define a web request to create an access request.

Defining a Web Request

Follow these steps to create an access request:

  1. From the side menu, click and drag a Web Request module to the canvas.

  2. Under Request Type, select POST.

  3. Under Endpoint, enter https://api.apono.io/api/v3/access-requests.

  4. From the Credentials dropdown menu, select Inline Credential.

  5. From the Authentication Type dropdown menu, select API key.

  6. Under Key, enter Authorization.

  7. Under Value, enter Bearer APONO_API_TOKEN. Be sure to replace APONO_API_TOKEN with the value of your Apono personal API token.

  8. Copy and paste the following JSON payload into the Body field. This payload contains all the parameters required by the Apono API.

Be mindful of the following points regarding this payload:

  • Be sure to replace the following placeholders with the actual Apono ID values:

    • APONO_INTEGRATION_ID

    • RESOURCE_ID_1, RESOURCE_ID_2

    • PERMISSION_1, PERMISSION_2

  • Click Insert Placeholders to verify the placeholders. The Placeholders window opens.

    • For user_id, check Parser Fields > P1 - Parse User ID > root > id.

    • For justification, check Tickets > Description. The _text appended to the placeholder ensures that additional HTML is removed from the description.

{
  "user_id": "{{P1.root.id}}",
  "integration_id": "APONO_INTEGRATION_ID",
  "resource_ids": ["RESOURCE_ID_1", "RESOURCE_ID_2"],
  "permissions": ["PERMISSION_1", "PERMISSION_2"],
  "justification": "{{ticket.description_text}}",
  "duration_in_sec": 3600
}
  1. Add a header:

    1. Under Headers, click Add Header.

    2. Under Key, enter Content-Type.

    3. Under Value, enter application/json.

  2. At the bottom of the panel, in the Enter Label field, add a label for the module, such as Access Request.

  1. Click Done. The Web Request panel closes. The module appears on the canvas.

  1. Click Activate. The Activate Automator popup window appears.

  2. Click Confirm.

enabling secure, programmatic access to the Apono API

On the page, on the Resources tab, click Basic.

Credentials
Inventory
Freshservice's documentation
Workflow Automator canvas