Freshservice
Freshservice’s Workflow Automator can trigger a webhook with a fully custom JSON body on incident events — a good fit since Freshservice has a native “Incident” concept, unlike a general support-ticket queue. The payload field itself only does flat placeholder substitution (no inline logic), but the Workflow Automator’s condition nodes do support real branching — so one workflow, with a condition on ticket priority/status, can route to different Trigger Webhook actions with different hardcoded severity/status values, instead of needing several separate top-level workflows.
See API Overview for authentication and finding your Account ID/Team ID.
Configure the Webhook in Freshservice
Section titled “Configure the Webhook in Freshservice”- In Freshservice, go to Admin → Workflow Automator and create a new workflow scoped to Incidents.
- Set the trigger to the incident event you want to page on (e.g. incident created or updated).
- Add a condition node checking
Priority(orStatus), with a branch per value you care about (e.g. Urgent, High, Medium/Low). - On each branch, add a separate Trigger Webhook action, using the custom/advanced request body mode (not the simplified field-picker mode) — same URL and header on every branch, only
severity/statusdiffer. - Set the URL to
https://api.opsfusion.cloud/v1/account/YOUR_ACCOUNT_ID/push/alerton each webhook action. - Add a header to each:
Authorization: YOUR_API_KEY. - Enter the matching JSON body (below) on each branch’s webhook action.
Payload Template
Section titled “Payload Template”Branch: Priority is Urgent
{ "teamId": YOUR_TEAM_ID, "title": "{{ticket_subject}}", "description": "{{ticket_description}}", "severity": 1, "status": 1, "labels": { "ticket_id": "{{ticket_id}}", "priority": "{{ticket_priority}}" }}Other branches: identical, with severity set to 2 (High) or 3 (Medium/Low) to match that branch’s condition. If you also want auto-resolve, add a second condition node on ticket status (Resolved/Closed) with its own webhook action per branch, status: 3.
This still can’t compute severity/status from a single formula the way a couple of the other integrations in this section can (Freshservice’s condition nodes route to different actions, they don’t let a payload field reference the branch result inline) — but keeping it to one workflow with multiple branches is simpler to maintain than one workflow per priority level.
Field Mapping
Section titled “Field Mapping”| OpsFusion field | Freshservice source |
|---|---|
teamId | Hardcoded per webhook action |
title | {{ticket_subject}} |
description | {{ticket_description}} |
severity | Hardcoded per branch, based on the condition node’s Priority match (Urgent → 1, High → 2, Medium/Low → 3) |
status | Hardcoded per branch, based on which trigger/condition it’s under (incident opened vs. resolved) |
labels | {{ticket_id}}, {{ticket_priority}} |
Troubleshooting
Section titled “Troubleshooting”- Test button looks like it worked, but nothing shows up in OpsFusion: Freshservice’s built-in “test webhook” sends static sample data, not a real ticket — it only confirms the URL/headers are reachable, not that your placeholders resolve correctly. Trigger a real (or sandbox) incident to confirm end-to-end.
- Wrong severity/status arrives, or nothing arrives at all: check the workflow’s execution log to see which condition branch actually fired — a common mistake is two branches with overlapping conditions (e.g. “Priority is High” and “Priority is not Low”), where the ticket matches both and only one webhook action runs.
- Rate limiting: Freshservice webhooks are capped at 1000 calls/hour per account — high alert volume workflows should batch or filter before this limit becomes a problem.
- Retries on failure: Freshservice automatically retries a failed webhook call up to 4 times (at roughly 3, 5, 9, and 17 minutes), with a 15-second timeout per attempt — a slow OpsFusion response won’t silently drop the alert, but it can arrive noticeably late.
Support
Section titled “Support”For integration support:
- Email: support@opsfusion.cloud
- See Send Alerts for the full API reference