Get Automation Connectors (Webhooks)#
Retrieve configured automation connectors (webhooks) for incident and event management integrations.
✅ All code examples tested: Verified against FortiAnalyzer v7.4.8, v7.6.4, v8.0.0.
Overview#
This endpoint retrieves automation connector configurations - useful for:
Listing all configured webhooks and integrations
Auditing automation connector settings
Verifying SIEM/SOAR/ticketing system integrations
Checking webhook status and connectivity
Documentation and configuration backup
Automation connectors enable FortiAnalyzer to send events and alerts to external systems (Splunk, QRadar, ServiceNow, Slack, Microsoft Teams, custom webhooks).
Endpoint Details#
Method: POST
URL: /jsonrpc
API Path: /config/adom/{adom}/system/webhook
ADOM Support: Yes
Requires Authentication: Yes
Minimum Version: 7.4.0
Prerequisites#
Active session or valid API key
Read access to system configuration in specified ADOM
Administrative permissions for automation connector management
Request Example#
{
"method": "get",
"params": [{
"url": "/config/adom/root/system/webhook"
}],
"session": "{{session_id}}",
"id": 1
}
{
"result": [{
"data": [
{
"name": "Splunk_SIEM",
"uri": "https://splunk.example.com:8088/services/collector",
"protocol": "HTTPS",
"port": 8088,
"method": 0,
"conn-type": 0,
"auth-status": 1,
"status": 1,
"description": "Splunk HEC Integration",
"title": "Splunk SIEM",
"color": "#00AA00"
},
{
"name": "ServiceNow_Tickets",
"uri": "https://yourinstance.service-now.com/api/now/table/incident",
"protocol": "HTTPS",
"port": 443,
"method": 0,
"conn-type": 0,
"auth-status": 1,
"status": 1,
"description": "ServiceNow Incident Creation",
"title": "ServiceNow",
"color": "#62D84E"
}
],
"status": {
"code": 0,
"message": "OK"
},
"url": "/config/adom/root/system/webhook"
}],
"session": "{{session_id}}",
"id": 1
}
Response Fields#
Field |
Type |
Description |
|---|---|---|
|
|
Connector name (unique identifier) |
|
|
Webhook URL endpoint |
|
|
Protocol: “HTTPS”, “HTTP” |
|
|
Port number |
|
|
HTTP method: 0=POST, 1=GET, 2=PUT |
|
|
Connection type |
|
|
Authentication status: 0=disabled, 1=enabled |
|
|
Connector status: 0=disabled, 1=enabled |
|
|
Connector description |
|
|
Display title |
|
|
UI color code (hex) |
Complete Python Example#
import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
def get_automation_connectors(session_id, adom="root"):
"""
Get all automation connectors (webhooks)
Args:
session_id: Active session ID
adom: ADOM name (default: "root")
Returns:
list: Automation connector configurations
"""
url = "https://faz.example.com/jsonrpc"
payload = {
"method": "get",
"params": [{
"url": f"/config/adom/{adom}/system/webhook"
}],
"session": session_id,
"id": 1
}
response = requests.post(url, json=payload, verify=False)
result = response.json()
if result['result'][0]['status']['code'] == 0:
return result['result'][0]['data']
else:
raise Exception(f"API error: {result['result'][0]['status']['message']}")
# Example usage
connectors = get_automation_connectors(session_id="your_session_id")
print(f"Total Automation Connectors: {len(connectors)}\n")
for conn in connectors:
status_icon = "✓" if conn['status'] == 1 else "✗"
print(f"{status_icon} {conn['name']} ({conn['title']})")
print(f" URL: {conn['uri']}")
print(f" Protocol: {conn['protocol']}:{conn['port']}")
print(f" Status: {'Enabled' if conn['status'] == 1 else 'Disabled'}")
print()
Use Cases#
Audit Webhook Configurations#
# Audit all configured webhooks
connectors = get_automation_connectors(session_id=session)
print("Webhook Configuration Audit:\n")
enabled_count = sum(1 for c in connectors if c['status'] == 1)
disabled_count = len(connectors) - enabled_count
print(f"Total Connectors: {len(connectors)}")
print(f" Enabled: {enabled_count}")
print(f" Disabled: {disabled_count}\n")
# Check for insecure HTTP connectors
insecure = [c for c in connectors if c['protocol'] == 'HTTP']
if insecure:
print("⚠️ Insecure HTTP Connectors Detected:")
for conn in insecure:
print(f" - {conn['name']}: {conn['uri']}")
Export Connector Configuration#
# Export webhook configurations to JSON
import json
from datetime import datetime
connectors = get_automation_connectors(session_id=session)
backup = {
"export_date": datetime.now().isoformat(),
"adom": "root",
"connectors": connectors
}
filename = f"webhooks_backup_{datetime.now().strftime('%Y%m%d_%H%M%S')}.json"
with open(filename, 'w') as f:
json.dump(backup, f, indent=2)
print(f"✓ Exported {len(connectors)} connectors to {filename}")