Freshservice with OpsRamp is a bi-directional integration. After successful integration, you can view Freshservice Incidents in OpsRamp and vice versa. User needs to complete configurations in OpsRamp and Freshservice, separately.

Freshservice is a cloud-based IT Help Desk and service management solution that enables organizations to simplify their IT operations. The solution offers features that include a ticketing system, self-service portal, and knowledge base.

This collaboration integration supports the webhook-based inbound calls with different types of service management requests. For example, you can select one or multiple Entity Types from Incident, Service Request, Problem, and Change.

Key scenarios

Users of Freshservice can create an OpsRamp incident and update using the inbound integration and can get updates from OpsRamp using the outbound integration.

OpsRamp to Freshservice

Prerequisites

  • Enable webhook channel of communication.
  • Outbound updates are limited to only incidents, service requests, change requests, and problem requests of the Service Managment tool.

Use APIs to configure

To use APIs for configuration, refer to the collaboration integration APIs.

Use OpsRamp and Freshservice UIs you can complete Freshservice integration.

OpsRamp configuration

Step 1: Install the integration

  1. From All Clients, select a client.
  2. Go to Setup > Account.
  3. Select the Integrations and Apps tab.
  4. The Installed Integrations page, where all the installed applications are displayed. Note: If there are no installed applications, it will navigate to the ADD APP page.
  5. Click + ADD on the Installed Integrations page. The Available Integrations and Apps page displays all the available applications along with the newly created application with the version.
    Note: You can even search for the application using the search option available. Also yu can use the All Categories option to search.
  6. Click ADD in the Freshservice application and click Install.

Step 2: Inbound configuration (From Freshservice to OpsRamp)

  1. In Authentication, select Webhook as Authentication Type.

  2. Select the required service management entities from Entity Type.

  3. Click Save.

    Copy URL details. These values are used for creating and updating selected entities in Freshservice:

    Freshservice Integration
  4. In Map Attributes, select the OpsRamp entity from the drop-down menu.

  5. Click Map against the respective attribute, enter the mapping details, and click Save.

The following table shows the property mappings:

Third-Party EntityOpsRamp EntityThird-Party PropertyOpsRamp Property (non-editable)
TicketsIncidentstatus
Third-party Property Value :: OpsRamp Property Value
  • 2 :: New
  • 3 :: Pending
  • 4 :: Resolved
  • 2 :: Open
  • 5 :: Closed
incident.status.name
TicketsIncidentpriority
Third-party Property Value :: OpsRamp Property Value
  • 2 :: Normal
  • 3 :: High
  • 1 :: Low
  • 4 :: Urgent
incident.priority.name
TicketsIncidentresponse.descriptionincident.latestResponse.description
TicketsIncidentsubjectincident.subject
TicketIncidentdescriptionincident.impact
TicketsIncidentextTicketIdincident.extTicketId

Mapping can be changed later.

Step 3: Outbound configuration (From OpsRamp to Freshservice)

  1. In Integration Basic Configuration, configure notification details to trigger the defined events:

    • Notification Type: REST API
    • Base URI: https://{subdomain}.com/helpdesk/tickets
    • Authentication Type: Basic
  2. Click Save.select the OpsRamp entity and click Map against the required attribute.

  3. Enter mapping values for the entity and click Save.

  4. In Integration Events, specify the information about the event.

    An action performed on an entity is defined as an event. When an event is triggered, notifications are sent to the respective users.

  5. Select Service Desk, select Incident, and select the action type.

  6. Select Parent Configuration to assign the configured basic integration details to the event.

  7. Enter the endpoint URL.

  8. Select the web method and enter headers and payload.

    • To add more tokens to the payload, click the token in the Place Holders list.
    • A custom field that is already configured as response payload attribute for a given integration is not available for configuration in any other integrations. Remove the existing mapping from the integration to make the custom field available to map the response payload of any other integration.

  9. To parse a property returned in the response, select the property from the drop-down, enter the parsing value.

  10. Response: Select a response and enter a value. The event is created, only if you provide the response properties.

  11. Click Save.
    Integration response mapping configuration:
    Response mapping configuration is mainly based on the response payload that is received in third party payload; below are a few examples for response mapping configuration -

    1. sample response payload to mapping the id in response mapping:

      {
      "id":"INC0001",
      "type":"incident",
      "tool":"servicedesk"
      }
      

      external ticket id = $id
      We need to append $ to the value

    2. sample response payload to mapping the id in response mapping:

      {
      "result":{
      "id":"INC0001",
      "type":"incident",
      "tool":"servicedesk"
          }
      }
      

      external ticket id = $result.id

    3. Sample response payload to mapping the id in response mapping

      {
             "result":[
                {
                   "ticketDetails":{
                  "id":"INC0001",
                  "type":"incident",
                  "tool":"servicedesk"
            },
               "Description":{
                  "display_value":"testing description",
                  "value":"validating"
               }
            }
         ]
      }
      

      external ticket id = $result[0].ticketDetails.id

    4. sample response payload to mapping the Incident Number in response mapping

           {
        "result": {
          "Incident Number": "INC0001",
          "type": "Incident"
            }
          }
      

      external ticket id = $result[‘Incident Number’]

Verify Integration

To validate if the integration is successful, do the following:

  1. Select the event from the drop-down menu and select payload type.
  2. Enter the payload and click Verify. A 200-OK success response is generated if the integration is successful.

Integration Failures

In case of a failure in integration, a message is sent to the respective user. Select notification type Email, enter the email address, and click Save.

Monitoring of Integration

Assign a template from the Monitoring of Integration tab, if you want to monitor integration failures. See monitoring integration failures for more information.

Audit Logs

View logs from the Audit Logs tab. You can view if the event was successful or not.

The following are the integration field values and event payloads for creating events.

Create ticket

FieldsValues
Endpoint URLhttps://{subdomain}.com/helpdesk/tickets
Headers
  • Accept: application/json
  • Content-Type: application/json
MethodPOST
Authentication TypeBASIC
UsernameFreshservice username
PasswordFreshservice password

Example request with hard-coded values

{
 "helpdesk_ticket" : {
  "description" : "Test ticket to verify integration",
  "subject" : "Test ticket to verify integration",
  "email" : "xxx@domain.com",
  "priority" : 1,
  "status" : 2,
  "source" : 1,
  "category_92437" : "NE NOC",
  "subcategory1_92437" : "Monitoring",
  "group_id" : "25000001317"
 }
}

Example request with tokens

{
 "helpdesk_ticket" : {
  "description" : "$incident.impact",
  "subject" : "$incident.subject",
  "email" : "xxx@domain.com",
  "priority" : "[@$incident.priority.name@]",
  "status" : "[@$incident.status.name@]"
 }
}

Example response

{
 "helpdesk_ticket": {
  "cc_email": {
   "cc_emails": [],
   "fwd_emails": [],
   "reply_cc": [],
   "tkt_cc": []
  },
  "created_at": "2014-03-05T17:23:43+05:30",
  "deleted": false,
  "delta": true,
  "description": "Some details on the issue",
  "description_html": "Details on the issue",
  "display_id": 24,
  "due_by": "2014-03-05T18:23:43+05:30",
  "email_config_id": null,
  "frDueBy": "2014-03-05T17:53:43+05:30",
  "fr_escalated": false,
  "group_id": null,
  "id": 55,
  "isescalated": false,
  "notes": [],
  "owner_id": null,
  "priority": 1,
  "requester_id": 216,
  "responder_id": null,
  "source": 2,
  "spam": false,
  "status": 2,
  "subject": "Support needed..",
  "ticket_type": "Incident",
  "to_email": null,
  "trained": false,
  "updated_at": "2014-03-05T17:23:43+05:30",
  "urgent": false,
  "status_name": "Open",
  "requester_status_name": "Being Processed",
  "priority_name": "Low",
  "source_name": "Portal",
  "requester_name": "hulk",
  "responder_name": "No Agent",
  "to_emails": null,
  "department_name": null,
  "assoc_change_id": "Getting ES3 back up to speed1",
  "assoc_problem_id": null,
  "assoc_change_cause_id": null,
  "custom_field": {},
  "attachments": []
 }
}

Freshservice configuration

Workflow Automator is used to configure Freshservice.

Workflow Automator allows automation of all the repetitive tasks and manual processes. These processes include assigning tickets to the right agent or team, triggering webhooks to integrate with third-party tools, and more. With the Workflow Automator, workflows are created using simple drag and drop actions.

A workflow includes the following components:

  • Event: The component defines when a workflow has to be triggered.
  • Condition: The component defines the parameters that need to be validated during the execution of a workflow.
  • Action: The component displays the outcome of the workflow.

Step 1: Create incident

To configure a create incident workflow automator:

  1. Log into Freshservice and go to Setting > Workflow Automator.

  2. On the New Automator drop-down, click Ticket to create a workflow.

  3. Enter the following required details and click Create:

    • Title: Enter a title. For example, OpsRamp Create Incident Automator
    • Description: Description of the workflow.

    Example: This automator triggers the OpsRamp API to create an incident in OpsRamp.

  4. On the Workflow Automator page, set up an event providing the following details and click Done:

    • When any of these events occur: Select Incident is Raised.
    • These events can be performed by: Select Anyone.
  5. Set up a condition to provide a set of parameters to the workflow.

    The workflow, after triggering, checks for the parameters. On the validation of the parameters, the workflow performs the defined action. This example does not have a condition where all new incidents are integrated.

  6. Set up action by clicking on the Action icon, dragging and placing next to the event

  7. Select Trigger Webhook.

    • Request Type: Select POST.
    • Callback URL: Enter an OpsRamp incident to create an API URL: https://{api-url}/integrations/incidentWebhook/{tenantId}/incidents?vtoken={token}

    Example: https://api.opsramp.com/integrations/incidentWebhook/client_1/incidents?vtoken=d75rcZ6NKdRTMlwHDRCpDqTWhqMIBpUk

Copy the webhook URL that provides the complete URL with Tenant ID and token.

  1. Navigate to Setup > Integrations > Integrations > Select client > My Integrations > Webhook tab > Copy Webhook URL.

  2. Enter:

    • Requires Authentication: No
    • Encoding: JSON
    • Content as Advanced and give the following payload (Modify payload as required based on use case): Example Payload
    {
    "subject" : "{{ticket.subject}}",
    "description" : "{{ticket.description}}",
    "priority" : "{{ticket.priority}}",
    "extTicketId":"{{ticket.id}}"
    }
    
  3. Click Done to save the action.

  4. Click Activate to save the Automator.

Step 2: Configure an update incident

To configure an update incident workflow automator:

  1. Go to Settings > Workflow Automator.

  2. From the New Automator drop-down, click Ticket.

  3. Enter the required details.

    • Title: Enter a title. For example, OpsRamp Update Incident Automator
    • Description: Description of the workflow. For example, this Automator triggers the OpsRamp API to update an incident in OpsRamp.
  4. On the Workflow Automator page, set up an event providing the following details and click Done.

    • When any of these events occur: Select Incident is Updated, Reply is sent.
    • These events can be performed by: Select Anyone.
  5. Set up a Condition. This is where you provide a set of parameters to the workflow. The workflow, after being triggered, checks for the parameters. On the validation of the parameters, the workflow performs the defined action. Because this example does not have any condition, all new incidents are integrated.

  6. Set up action by clicking on the Action icon, dragging and placing next to the event.

  7. Enter:

    • Do these actions on Select Ticket.
    • Select Trigger Webhook.
    • Request Type: Select POST.
    • Callback URL: Enter an OpsRamp incident to create an API URL: https://{api-url}/integrations/incidentWebhook/{tenantId}/incidents?vtoken={token}. Example: https://api.opsramp.com/integrations/incidentWebhook/client_1/incidents?vtoken=d75rcZ6NKdRTMlwHDRCpDqTWhqMIBpUk
  8. Navigate to Setup > Integrations > Integrations > Select client > My Integrations > Webhook tab > Copy Webhook URL.

  9. Enter:

    • Requires Authentication: No
    • Encoding: JSON
    • Content as Advanced and enter the following payload (Modify payload as required based on use case):
    {
    "priority": "{{ticket.priority}}",
    "status": "{{ticket.status}}",
    "extTicketId":"{{ticket.id}}",
    "response": {
    "description": "{{ticket.latest_public_comment}}"
     }
    }
    
  10. Click Done to save the action.

  11. Click Activate to save the Automator.

Results

The incident, Service Request, Problem Request, and Change Request when created at OpsRamp are created at Freshservice also. Any Update from Freshservice on all four requests is updated at OpsRamp and vice-versa.