Kaseya VSA
Receive Kaseya VSA alarms in AlertFlow and create VSA service desk tickets from workflows.
Overview
The Kaseya VSA integration has two independent parts:
- Inbound — Kaseya VSA POSTs alarm callbacks to AlertFlow, creating alerts automatically.
- Outbound — AlertFlow 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 AlertFlow
- 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 AlertFlow 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 AlertFlow → Alerts, the alert should appear within seconds with the title, severity, and device name populated.
Default field mappings
| Kaseya VSA field | AlertFlow field |
|---|---|
Subject | title |
Priority | severity (via severity map) |
Message | description |
GroupName | labels.client |
AlarmID | labels.sourceId |
Severity map
| Kaseya Priority | AlertFlow 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 AlertFlow 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 AlertFlow
- 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 AlertFlow 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}} | AlertFlow 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 AlertFlow 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. |