Introduction
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.
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.
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.
OpsRamp Configuration
Install the Integration
- From All Clients, select a client.
- Go to Setup > Account.
- Select the Integrations and Apps tab.
- The Installed Integrations page, where all the installed applications are displayed. Note: If there are no installed applications, it will navigate to the Available Integrations and Apps page.
- 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.
- Search for Freshservice using the search option available.
Note: Alternatively, you can use the All Categories option to search. - Click ADD on the Freshservice tile. The Inbound tab is displayed.
Configure the Integration
Based on your requirements, you can configure Inbound, Outbound or both.
Configure the Inbound (From Freshservice to OpsRamp)
To configure the inbound, follow these steps:
- Authentication: Select OAUTH2 from the Authentication Type dropdown and click on Generate Key to generate the Key and Secret.
Note: Keep a copy of the token as the information will not appear again. Read information about the Access Key. - Map Attributes: Map OpsRamp entity attributes with Freshservice attributes.
- Click +Add from the Map Attributes section.
- From the Add Map Attributes window, enter the below information:
- OpsRamp Entity: Select the Opsramp entity from dropdown.
- OpsRamp Property: Select the Opsramp property from dropdown. It will change based on entity selection.
- Freshservice Entity: Enter the Freshservice entity.
- Freshservice Property: Enter the Freshservice property.
- Click +Property Value in the Property Values section, and enter Freshservice Property Value and OpsRamp Property Value and click Save.
Note:- The Property values section appears based on the OpsRamp Property selected.
- To add property values, click +Property Value.
- To map more attributes, click +Entity.
- Properties:
- Click +Properties from the Properties section.
- Enter the values for the Properties and Value fields and click Save.
Note: To add properties, click +Properties - Click Add Map Attributes.
- Click Next. The Outbound tab is displayed.
Configure the Outbound (From OpsRamp to Freshservice)
To configure the outbound, follow these steps:
- Configuration: The notification details to trigger integration events are displayed.
- Base URI:
https://{subdomain}.com/arsys/services/ARService?server=onfreshservice-s&webService=OpsRamp_CreateIncident
- Notification Type: Select the Notification Type. Available options are REST API and SOAP API.
- Authentication Type: Based on the Notification Type selected, the Authentication Type differs. Available options are Basic, OAuth2, JWT, None.
- Base URI:
- Map Attributes: From the Map Attributes window, enter the below information:
- OpsRamp Entity: Select the OpsRamp entity from dropdown.
- OpsRamp Property: Select the OpsRamp property from dropdown. It will change based on entity selection.
- Freshservice Entity: Enter the Freshservice entity.
- Freshservice Property: Enter the Freshservice property.
- Click +Property Value in the Property Values section, and enter Freshservice Property Value and OpsRamp Property Value and click Save.
Note:- The Property values section appears based on the OpsRamp Property selected.
- To add property values, click on +Property Value.
- To map more attributes, click on +Entity.
- Click Add Map Attributes .
- Events: Events are for sending notifications when an action is performed on OpsRamp entities.
- Click Add in the Events section.
- Enter a name for the event.
- Select the Entity, Entity Type, and Entity Type Event from the drop-down lists.
- (Optional) Under Advanced Settings, enter the values for Property, Operator, and Value and click Save.
- From Actions:
- Select Use Parent Configuration checkbox to inherit parent configuration.
- Enter Endpoint URL.
- Select the Notification Type. Available options are REST API and SOAP API.
- Select the Authentication Type. Based on the Notification Type selected, the Authentication Type differs. Available options are Basic, OAuth2, JWT, None.
- Select the web method.
- Headers:
- Click +Add and enter/select the header name and value.
- Click Save to save the header name.
- (Optional) Click +Add to add more _headers
- Enter the Payload.
- Response:
- Click +Add and enter/select the response name and value.
- Click Save to save the response name.
- (Optional) Click +Add to add more responses.
Note:- The event is created, only if you provide the response properties.
- You cannot enter more than four responses.
- (Optional) Attachment: In the Attachment section, provide inputs in the Process Type, Attachment Endpoint URL, and Web Method fields.
- Attachment Headers: In the Attachment Headers section, provide inputs in the Name and Value fields and click on Save.
- Enter the payload in the Attachment Payload box.
- Enter the Key and Value in the Attachment Response section.
- Click Add Event. The event is added.
There are some actions you can perform on the Events.
See here for more details.
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:
- 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 - sample response payload to mapping the id in response mapping:
{ "result":{ "id":"INC0001", "type":"incident", "tool":"servicedesk" } }
external ticket id = $result.id
- 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
- sample response payload to mapping the Incident Number in response mapping
{ "result": { "Incident Number": "INC0001", "type": "Incident" } }
external ticket id = $result[‘Incident Number’]
- Failures: In the case of failure in integration, an Email is sent to the user about the failure in integration.
To configure failure notification:- Click add from the Failures section.
- Select notification type as Email.
- Enter the email address(es) in the To and CC fields
- Click Add Failure Notifications. The details are added.
- Click Finish. The integration is installed.
Actions on Integration
You can perform actions on an integration.
- See here for more information.
Actions on Event
Follow these steps to perform actions on the events:
- Click on the integration name.
- Navigate to Outbound tab > Events section.
- Hover over the event name.
- Click the actions (three dots) menu. A popup appears with options.
- Copy Id: To copy an event Id.
- Edit: To edit the event details.
- Save as: To save an event name.
- Validate: Validate if the event is successful.
- Select Json or Form.
- Json: Enter the payload and click on Validate.
- Form: Enter the property and value in the fields and click on Validate.
A green tick appears if the event is successful
- Json: Enter the payload and click on Validate.
- Select Json or Form.
- Remove: To remove an event.
Audit Logs
View logs from the Audit Logs tab. You can view if the event was successful or not.
Integration Event Payloads
Create ticket
Fields | Values |
---|---|
Endpoint URL | https://{subdomain}.com/helpdesk/tickets |
Headers |
|
Method | POST |
Authentication Type | BASIC |
Username | Freshservice username |
Password | Freshservice 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:
Log into Freshservice and go to Setting > Workflow Automator.
On the New Automator drop-down, click Ticket to create a workflow.
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.
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
.
- When any of these events occur: Select
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.
Set up action by clicking on the Action icon, dragging and placing next to the event
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
- Request Type: Select
Copy the webhook URL that provides the complete URL with Tenant ID and token.
Navigate to Setup > Integrations > Integrations > Select client > My Integrations > Webhook tab > Copy Webhook URL.
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}}" }
- Requires Authentication:
Click Done to save the action.
Click Activate to save the Automator.
Step 2: Configure an update incident
To configure an update incident workflow automator:
Go to Settings > Workflow Automator.
From the New Automator drop-down, click Ticket.
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.
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
.
- When any of these events occur: Select
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.
Set up action by clicking on the Action icon, dragging and placing next to the event.
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
- Do these actions on Select
Navigate to Setup > Integrations > Integrations > Select client > My Integrations > Webhook tab > Copy Webhook URL.
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}}" } }
- Requires Authentication:
Click Done to save the action.
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.