Capabilities
Capabilities | Supported |
Connector Capabilities | |
Read | Yes |
Backfill | Yes |
Bidirectional Capabilities | |
Incident Create | No |
Incident Update | No |
Narrative Update | No |
Overview
GovWorx offers two ways to connect to Hexagon CAD depending on your particular deployment.
Direct Database Query
The Data Agent will read from a Hexagon replicated reporting database. Agent will run prebuilt read-only SQL queries on a customer determined time interval. To do this we will need a SQL reader user account to connect.
SQL Server Configuration Notes
To ensure a successful and secure connection, verify the following:
Firewall Access: Ensure the server hosting the GovWorx Data Agent can reach the SQL Server over the appropriate network and port (typically TCP 1433).
Minimum Permissions: The provided database user must have read-only access to relevant tables, views, or stored procedures. Write access is not required or recommended.
Instance Visibility: If using a named instance, confirm SQL Server Browser service is running, or explicitly provide the port number.
Troubleshooting Tips
Login Failed? Verify the SQL user is enabled and not locked out.
Timeout Errors? Check network routes and firewall rules.
Invalid Database? Ensure the
databasefield in the config matches the actual schema name.
Network Requirements: The server running the Data Agent should be able to connect to the CAD Reporting server over port 1433. This can be tested using PowerShell.
PowerShell Command:
Test-NetConnection -ComputerName {CAD Reporting Server name or IP} -Port 1433
CSV file via SFTP
We have also worked with customers who want more control over the query to programmatically export and upload a CSV. See this article for more details on our SFTP flow.
Waiting for related incidents
Hexagon can split one master event into several agency incidents that share an EID. For example, a fire incident and a law incident can share one EID. By default, the Data Agent uploads each incident when it closes. Notes that the incidents share can then be missing from the incident that closed first.
The "Wait for every visible incident sharing an EID to close before first upload" setting changes this. With the setting on, the Data Agent holds a closed incident until every incident that shares its EID has closed. This includes incidents that your filters leave out of the upload. When the group closes, the Data Agent reads each incident again and uploads it with its current notes and units.
24-hour maximum wait: The Data Agent holds a group for no more than 24 hours. The 24 hours start when the Data Agent first holds the group or when an incident in the group closed, whichever is earlier. A group that is already older than 24 hours can upload at once. After 24 hours, the Data Agent uploads the closed incidents in the group. An incident that is still open stays held until it closes. Query and upload errors are retried, so an upload can arrive later than 24 hours. You cannot change the 24-hour limit.
Tradeoff: Each incident uploads one time. After an upload at the 24-hour limit, notes that are added later to a shared incident do not reach the incident that already uploaded. The Data Agent does not update an incident after it uploads.
Restarts: Held incidents, their hold times, and retry progress survive a Data Agent restart. When you turn the setting off, the Data Agent still finishes the incidents that it already holds. Other incidents use the standard upload.
Scope: The setting covers incidents that share an EID only. It does not link cross-referenced incidents. It does not recover incidents that the Data Agent missed before you turned the setting on.
Troubleshooting: The Data Agent log shows a warning when a group reaches the 24-hour limit and when a held group still needs a retry. If held incidents do not upload, check the log for query or upload errors. The Data Agent also limits how many groups it holds at one time. At that limit, new groups can wait until held groups upload.
Standard Data Fields
These are the standard data fields the Data Agent reads from Hexagon CAD with the SQL connection. The Data Agent reads closed incidents. The tables below show each GovWorx field and the Hexagon source it comes from. Source names are columns of the table named before the dot.
Note: Additional fields are considered enhancement requests.
Incident fields
GovWorx field | Hexagon source | Notes |
Incident ID |
| CAD record key. |
Incident Number |
| Incidents that share an eid belong to the same master event. |
Incident Type |
| Uses sub_tycod when tycod is blank. The subtype setting reports type-subtype. The Initial Incident Type setting replaces it with the earliest type. |
Initial Incident Type |
| The earliest revision (rev_num) that has a type. |
Agency |
| |
Priority |
| |
Incident Date |
| |
Disposition |
| The first disposition row for the event. |
Location |
| With the common_event_call join off, built from estnum, efeanme, edirsuf, and efeatyp. The cross street setting is the fallback when blank. The Initial Location setting uses common_event_history. |
Location Name |
| Uses loc_com when ecompl is blank. A leading @ or # is removed from loc_com. |
Street Number |
| |
Street Name |
| Joined with spaces. |
Apartment |
| |
Municipality |
| |
Cross Street 1 |
| |
Cross Street 2 |
| |
Call Source |
| With the common_event_call join off, common_event.call_sour. |
Caller Number |
| With the common_event_call join off, common_event.clrnum. |
Caller Name |
| With the common_event_call join off, common_event.clname. |
Call Position |
| |
Call Taker ID |
| |
Call Taker Name |
| Looked up from agency_event.cpers. |
Call Received Time |
| Seconds since 1970. With the common_event_call join off, agency_event.sdts. The earliest CAD note timestamp setting replaces this with the earliest note time. |
Call Pickup Time |
| |
Dispatch Queue At |
| |
Closed At |
| The Data Agent reads incidents by close time. The last-update setting uses agency_event.udts. |
Case Number |
| Only with the ProQA setting on. |
Response Area |
| |
Additional Context |
| Only with the caller contact or EID setting on. |
Additional Personnel |
| Only with the EMS setting on. The user on the first comment that contains Event Type changed from EMS. The type is secondary call taker. |
Additional Incident Fields |
| Only with the Additional Fields setting. |
Notes
GovWorx field | Hexagon source | Notes |
Note Text |
| |
Note By |
| The full name from persl.fname and lname with the full names setting on. |
Note Time |
| |
Related persons note |
| Only with the related persons and vehicles setting on. One note for each incident. Note By is the call taker. Note Time is Closed At. |
Related vehicles note |
| Only with the related persons and vehicles setting on. One note for each incident. Note By is the call taker. Note Time is Closed At. |
Responders and units
GovWorx field | Hexagon source | Notes |
Unit Name |
| One responder for each unit and person. |
Personnel ID |
| |
Dispatched By |
| From the first DP entry. |
Dispatched At |
| The earliest entry with unit status DP. The Data Agent skips units with no DP entry. |
Enroute At |
| The earliest entry with unit status ER. |
Arrived At |
| The earliest entry with unit status AR. |
Cleared At |
| The earliest entry with unit status AV, AP, AQ, or AM. |
Data Agent Settings
To prepare for this connection, we need the following details. These are settings in the GovWorx Data Agent configuration for this connector. A toggle is an on/off switch in that configuration.
Setting | Type | Explanation |
| Text | Host of the reporting database |
| Text | Database user |
| Password | Database password |
| Text | Database Schema to read from |
| Toggle | Whether to use gMSA to authenticate to the database. Either enable this or supply both a username and password. |
| Toggle | Toggle will connect with multi-subnet failover on and a read-only application intent, so the connection goes to a readable secondary in an availability group. |
| Toggle | Toggle will report incident type as "{type}-{subtype}". A subtype of default is dropped. |
| Toggle | Toggle will use the earliest incident type in the incident history as the Incident Type. The Initial Incident Type field is filled from that history whether this is on or off. |
| Toggle | Toggle will leave out system-generated notes. The Data Agent keeps only evcom rows with a comment key of 0. |
| Toggle | Toggle will add one note of related persons and one note of related vehicles to each incident. |
| Toggle | Toggle will show the first and last name of each note author in place of the CAD ID. |
| Toggle | Toggle will join responders with un_hi.unique_id and un_hi_persl.un_hi_rec_id. When off, the join uses un_hi_child_change_id. |
| Toggle | Toggle will skip the common_event_call table. Call Source, Caller Number, and Caller Name then come from common_event. Call Received Time comes from the agency event start time. Location is built from the street parts in common_event. |
| Text | Minutes of history to read when the Data Agent has no saved position from an earlier run. Default: 30. |
| Toggle | Toggle will query a fixed date range in place of the rolling lookback window. |
| Text | Beginning time of the fixed range. Shown when the fixed range toggle is on. |
| Text | End time of the fixed range. Shown when the fixed range toggle is on. |
| Text | Splits the fixed range into chunks to avoid query timeouts. Default: 01:00. Shown when the fixed range toggle is on. |
| Text | Incidents from these agencies are not read. |
| Toggle | Toggle will build the location from the cross streets and street name when the location is blank. |
| Toggle | Toggle will replace the location with the earliest address in common_event_history, which is the address first entered when the call address changed during the call. |
| Text | A JSON object that maps a name you choose to a common_event source. The source is location_name, street_number, street_name, apartment, municipality, cross_street_1, cross_street_2, or a common_event column. The values appear as additional incident fields. Default: {} |
| Toggle | Depending on your configuration, either num_1 or eid is used for each incident's ID. Enable this to always include the EID in the "Additional context" field of each event. |
| Toggle | Toggle will add CallerContact: Yes or CallerContact: No to additional context, from common_event.see_cp. |
| Toggle | Toggle will add the user who made the first Event Type changed from EMS comment as a secondary call taker in additional personnel. |
| Text | Leaves out incidents where the gap between the dispatch queue time and the call time is this many seconds or more. Empty turns this off. |
| Text | View to read in place of the agency_event table (incident records). |
| Text | View to read in place of the common_event table (event details and location). |
| Text | View to read in place of the common_event_call table (caller and call data). |
| Text | View to read in place of the common_event_history table (initial and changed location values). |
| Text | View to read in place of the an_al table (call pickup times). |
| Text | View to read in place of the evcom table (incident notes and comments). |
| Text | View to read in place of the persl table (personnel names). |
| Text | View to read in place of the un_hi table (unit and responder history). |
| Text | View to read in place of the un_hi_persl table (responder personnel). |
| Toggle | Toggle will read incidents by the last-update time in place of the close time. Use it for training CADs where calls are never closed. |
| Text | Required when the last-update toggle is on. Shown when that toggle is on. |
| Toggle | Toggle will fill Case Number with the ProQA case number. |
| Number | Caps how far back a stale cursor can reach so an idle or reconnected connector does not issue an oversized catch-up query. Default: 8. |
| Toggle | Toggle will hold each incident until every incident that shares its EID has closed, for no more than 24 hours. See Waiting for related incidents above. Default: off. Do not turn this on with the fixed range or last-update toggles. When either one is also on, the Data Agent does not read incidents and logs an error. |
| Toggle | Toggle will use the earliest CAD note time as Call Received Time. Use it when the first note marks the start of the call better than the CAD pickup time. Call Pickup Time does not change. When no note has a time, Call Received Time stays as read from CAD. Default: off. This setting is on every CAD connector. |
*: Required
**: Either Windows authentication or (username and password) is required.
