Kaseya VSA
Receive Kaseya VSA alarms in NOCBuddy and create VSA service desk tickets from workflows.
Overview
The Kaseya VSA integration has two independent parts:
- Inbound — Kaseya VSA POSTs alarm callbacks to NOCBuddy, creating alerts automatically.
- Outbound — NOCBuddy workflow actions open service desk tickets in Kaseya VSA.
You can enable either part independently.
Part 1 — Receive alarms from Kaseya VSA
Step 1 — Create the integration in NOCBuddy
- Go to Integrations → New Integration.
- Select Kaseya VSA from the list.
- Optionally assign it to a client.
- Click Create and copy the Webhook URL.
https://app.yourdomain.com/api/inbound/webhook/<your-token>
Step 2 — Configure an External Alarm Action in VSA
- In Kaseya VSA, navigate to Monitor → Alarm Summary or Monitor → Define Alarm Sets.
- Open the alarm set you want to forward (or create a new one).
- Click Edit, then under Actions click Add External Action.
- Configure the action:
| Field | Value |
|---|---|
| Action Type | URL |
| URL | Your NOCBuddy Webhook URL |
| Method | POST |
| Content-Type | application/json |
| Body | (leave blank — Kaseya sends alarm fields automatically) |
- Save the alarm set.
Some Kaseya VSA versions label this feature as Alarm Notification, External Notification, or Webhook depending on the product version. Look under the alarm or monitoring configuration menu.
Step 3 — Test
Trigger a test alarm in Kaseya VSA. In NOCBuddy → Alerts, the alert should appear within seconds with the title, severity, and device name populated.
Default field mappings
| Kaseya VSA field | NOCBuddy field |
|---|---|
Subject | title |
Priority | severity (via severity map) |
Message | description |
GroupName | labels.client |
AlarmID | labels.sourceId |
Severity map
| Kaseya Priority | NOCBuddy Severity |
|---|---|
1 or Critical | critical |
2 or High | high |
3 or Medium | medium |
4 or Low | low |
5 or Info | info |
To adjust the severity map, open the integration in NOCBuddy and click Edit → Field Mappings.
Part 2 — Create tickets in Kaseya VSA from workflows
Step 1 — Generate an API token in Kaseya VSA
Kaseya VSA uses session-based authentication. Create a dedicated API user:
- Go to System → User Security → Users.
- Create a user like
alertflow-apiwith only the permissions needed:- Service Desk — Create Ticket
- Authenticate to get a Bearer token:
# Hash the password (Kaseya requires SHA-256 + base64)
HASH=$(echo -n "YourPassword" | sha256sum | cut -d' ' -f1 | xxd -r -p | base64)
HASH2=$(echo -n "${HASH}alertflow-api" | sha256sum | cut -d' ' -f1 | xxd -r -p | base64)
curl -X POST "https://vsa.yourcompany.com/api/v1.0/auth/credential/login" \
-H "Content-Type: application/json" \
-d '{"un":"alertflow-api","ph":"'"${HASH2}"'"}'
The response contains a Token field. Copy it.
Step 2 — Save credentials in NOCBuddy
- Go to Settings → Integrations → Ticketing → Kaseya VSA.
- Enter:
- VSA URL —
https://vsa.yourcompany.com - API Token — from Step 1
- VSA URL —
- Click Save Credentials.
Kaseya VSA session tokens expire. If ticket creation suddenly stops working, regenerate the token and re-save it in NOCBuddy Settings.
Step 3 — Add a Create Ticket node to a workflow
- Open the Workflow Builder and drag a Create Ticket node onto the canvas.
- Configure it:
- System:
Kaseya VSA - Board/Queue: the service desk department name, e.g.,
IT Support - Priority:
High - Subject:
{{alert.title}} — {{alert.severity}} - Body:
{{alert.description}}\n\nAlert ID: {{alert.id}}
- System:
Template variables
| Variable | Value |
|---|---|
{{alert.title}} | Alert title |
{{alert.severity}} | Severity (critical, high, …) |
{{alert.description}} | Alert body |
{{alert.id}} | NOCBuddy alert UUID |
{{alert.clientName}} | Client / company name |
{{alert.source}} | Source system |
Troubleshooting
| Symptom | Check |
|---|---|
| Inbound alarms not appearing | Verify the External Action URL in VSA exactly matches the NOCBuddy webhook URL. Confirm the integration is enabled (green status). |
| Outbound tickets not created | Open the workflow run log. Verify the board/queue name matches exactly. |
401 Unauthorized on ticket creation | The Kaseya token expired. Regenerate and re-save in Settings. |
| Wrong severity on inbound alerts | Edit the integration's field mappings and adjust the severity map (numeric vs. string). |
| Alarms arrive but fields are empty | Confirm Kaseya sends a JSON body. Older VSA versions may need an explicit body template in the alarm action using the field names in the mapping table above. |