Capabilities
Capabilities | API | SQL |
Connector Capabilities | ||
Read | Yes | Yes |
Backfill | No | Yes |
Bidirectional Capabilities | ||
Incident Create | No | No |
Incident Update | No | No |
Narrative Update | No | No |
Customers of this CAD may be able to use bidirectional capabilities through IntelliComm. See Bidirectional CAD Integrations.
Overview
FLEX DEX API
The Data Agent will read from the Spillman FLEX DEX API. To do this we need a user to connect.
User Permissions: The User needs permissions to the following tables:
CADMasterCallTable (cdcall & tab_cdcall)
CADCallHistoryTable (cdhist & tab_cdhist)
CADUnitTable (cdunit & tab_cdunit)
NatureOfCallTable (tbnatur & tab_tbnatur)
GeobaseAddressIDMaintenance (gbaddr & tab_gbaddr)
OfficerNameCodeTable (apnames & tab_apnames)
MasterPersonnelTable (pemain & tab_pemain)
MainNamesTable (nmmain & tab_nmmain)
CADCallCommentsTable (cdccomnt & tab_cdccomnt)
LoginLog (aplilog & tab_aplilog)
rlmain & tab_rlmain
rlofficr & tab_rlofficr
xmlquery
MAKE SURE
Login with this user once
Make sure the user can login from the machine the service is running on
SQL Connection
An alternative to using the FLEX DEX API we are able to query a replicated database directly. To do this you will need to create a SQL read only user on the replicated database.
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
Standard Data Fields
These are the standard data fields the Data Agent reads from Motorola Spillman. The Data Agent reads closed incidents. The tables below show each GovWorx incident field and the Spillman source it comes from.
Note: Additional fields are considered enhancement requests.
API: Incident fields
Source names are elements of the CADMasterCallTable response unless the row says otherwise.
GovWorx field | FLEX DEX source | Notes |
Incident ID |
| Some Spillman instances send number in place of RecordNumber. |
Incident Number |
| |
Incident Type |
| |
Caller Number |
| The complainant setting replaces it with MainNamesTable.HomePhoneNumber. |
Caller Name |
| The complainant setting replaces it with MainNamesTable.FirstName, MiddleName and LastName. |
Agency |
| |
Agency Type |
| |
Incident Date |
| |
Dispatch Queue At |
| |
Disposition |
| |
Response Area |
| Only with the fire zone setting on. |
Location |
| |
Priority |
| |
Latitude |
| |
Longitude |
| |
Call Position |
| The latest login by the call taker at or before the incident date, in the last 14 days. The machine names setting limits which machines count. |
Call Taker ID |
| |
Call Taker Name |
| |
Call Source |
| |
Call Received Time |
| The earliest CAD note timestamp setting replaces this with the earliest note time. |
Closed At |
| The Data Agent skips incidents with no value. |
Additional Context |
| Only with the Append complainant setting on. The text is Complainant: followed by the name, then Complainant Phone: followed by the phone. |
API: Notes
GovWorx field | FLEX DEX source | Notes |
Note ID |
| |
Note Text |
| |
Note By |
| |
Note Time |
|
API: Responders and units
Source names are elements of the radio log tables in the response.
GovWorx field | FLEX DEX source | Notes |
Unit Name |
| The main radio log setting reads MainRadioLogTable.UnitNumber. |
Personnel ID |
| The pemain setting reads MasterPersonnelTable.EmployeeId, then BadgeNumber, matched on OfficerName. The main radio log setting reads PatrolUnitOfficerDetail.OfficerName. |
Dispatched By |
| Becomes the login name when the name matches a call taker or responder in the same run. Not set with the main radio log setting. |
Dispatched At |
| The earliest entry with UnitStatus ASSGN, PAGED, D or DISP, or a code in the dispatched codes setting. The main radio log setting reads TimeDateOfEntry and TenCode. |
Enroute At |
| The earliest entry with UnitStatus ENRT, ENROUTE or ER, or a code in the en route codes setting. |
Arrived At |
| The earliest entry with UnitStatus ARRVD, ARRIVED or A, or a code in the arrived codes setting. |
Cleared At |
| The latest entry with UnitStatus CMPLT, CLEARED or C. |
SQL: Incident fields
GovWorx field | Spillman SQL source | Notes |
Incident ID |
| CAD record key. |
Incident Number |
| |
Incident Type |
| |
Caller Number |
| The complainant setting reads nmmain.phone. |
Caller Name |
| The complainant setting reads nmmain.first and nmmain.last. |
Agency |
| Empty with the CDHist bypass setting. |
Agency Type |
| |
Incident Date |
| The reported time setting and the CDHist bypass setting read cdcall.reptd. |
Dispatch Queue At |
| Same value as Incident Date. |
Disposition |
| Empty with the CDHist bypass setting. |
Location |
| |
Priority |
| |
Latitude |
| Joined on cdcall.addrid. |
Longitude |
| Joined on cdcall.addrid. |
Call Position |
| The latest successful SPI logon by the call taker at or before the incident date. The lookback setting limits how far back. The Exclude aplilog setting turns this off. |
Call Taker ID |
| |
Call Taker Name |
| Joined on cdcall.rcvdby. |
Call Source |
| |
Call Received Time |
| The earliest CAD note timestamp setting replaces this with the earliest note time. |
Call Pickup Time |
| |
Call Hangup Time |
| |
Closed At |
| The Data Agent reads incidents by this time. The CDHist bypass setting reads cdcall.modwhen. |
SQL: Notes
GovWorx field | Spillman SQL source | Notes |
Note ID |
| |
Note Text |
| |
Note By |
| |
Note Time |
|
SQL: Responders and units
GovWorx field | Spillman SQL source | Notes |
Unit Name |
| |
Personnel ID |
| Joined on rlmain.unit and cdunito.unitno. |
Dispatched By |
| |
Dispatched At |
| The earliest entry with rlmain.tencode ASSGN, PAGED, D or DISP, or a code in the dispatched codes setting. |
Enroute At |
| The earliest entry with tencode ENRT, ENROUTE or ER, or a code in the en route codes setting. |
Arrived At |
| The earliest entry with tencode ARRVD, ARRIVED or A, or a code in the arrived codes setting. |
Cleared At |
| The earliest entry with tencode CMPLT, CLEARED or C. |
SQL: Additional personnel
GovWorx field | Spillman SQL source | Notes |
Secondary call taker |
| Only with the PowerPhone toggle on. The user of the latest comment from source 2 that starts with Q:. The name comes from apnames.fullnam. |
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.
FLEX DEX API
Setting | Type | Explanation |
| Text | Host of the Spillman FLEX DEX API. Full URL with protocol and port (e.g. https://cad.example.net:4444/DataExchange/REST) |
| Text | Spillman API user username |
| Password | Spillman API user password |
| Toggle | Toggle will look up the officer ID of each responder in the personnel master table (pemain). Depends on Spillman licensed modules. Does not apply when Use MainRadioLogTable is on. |
| Toggle | Toggle will read unit tracking from MainRadioLogTable in place of OfficerRadioLogTable. Depends on Spillman licensed modules. |
| Toggle | Toggle will override caller name and caller phone with the complainant information from MainNamesTable |
| Toggle | Toggle will add the complainant name and phone from MainNamesTable to Additional Context. This works with or without the toggle above. |
| Text | Filter to a specific agency. Leave blank to read all agencies. |
| Text | Comma separated agencies to leave out. If you set both this and the agency setting above, the connector does not run. |
| Text | How far back we should pull data in each query, counted from the time the incident was reported. Default is 24 hours. |
| Text | How far back we should look for calls that closed. Default is 5 hours. An incident must meet both time settings. |
| Text | Comma separated machine names, or parts of names, that count as call taker positions. Leave blank to match every machine. |
| Toggle | Toggle will use ZoneOfCall as Response Area. |
| Text | Comma separated radio log codes that also mark a unit as dispatched and set Dispatched At. ASSGN, PAGED, D and DISP are built in. A code you list here replaces its built-in meaning. Leave blank to use only the built-in codes. |
| Text | Comma separated radio log codes that also mark a unit as en route and set Enroute At. ENRT, ENROUTE and ER are built in. A code you list here replaces its built-in meaning. Leave blank to use only the built-in codes. |
| Text | Comma separated radio log codes that also mark a unit as arrived and set Arrived At. ARRVD, ARRIVED and A are built in. A code you list here replaces its built-in meaning. Leave blank to use only the built-in codes. |
| 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. |
Note: Fields marked with an asterisk (*) are required.
SQL Connection
Setting | Type | Explanation |
| Text | Hostname of SQL Database |
| Text | SQL user username |
| Toggle | Toggle will enable the use of a domain service account that is configured to run the agent service as authentication to SQL server |
| Password | SQL user password |
| Text | Database Name |
| Toggle | When true, use the call reported time as the incident date in CommsCoach. When false, the default, use the "opened" time from the call history view. The bypass toggle below also turns this on. |
| Toggle | Toggle will skip the CDHist table. Use it in tables mode when the Data Agent cannot query CDHist, for example in simulation workflows where CDCall modwhen keeps changing until the call is complete. The Data Agent holds each call until modwhen has not changed for 5 minutes, then reads it. Closed At uses cdcall.modwhen and Incident Date uses cdcall.reptd. Agency and Disposition stay empty. An empty CDHist table view name override does not turn on the bypass. Use this toggle. Update the Data Agent before you turn this on. Default: off. |
| Toggle | Toggle will use the complainant from NMMain in place of the caller information in CDCall. |
| Toggle | Toggle will skip the APLILog table. Call Position stays empty. |
| Text | How many hours before a call to look for the call taker logon that sets Call Position. Default is 16. |
| Text | Name of the view to read in place of the cdcall table. |
| Text | Name of the view to read in place of the cdhist table. Not used when the bypass toggle is on. |
| Text | Name of the view to read in place of the cdccomnt table. |
| Text | Name of the view to read in place of the gbaddr table. |
| Text | Name of the view to read in place of the rlmain table. |
| Text | Name of the view to read in place of the aplilog table. |
| Text | Name of the view to read in place of the apnames table. |
| Text | Name of the view to read in place of the cdunito table. |
| Text | Name of the view to read in place of the nmmain table. Used with the complainant toggle. |
| Text | How far back the first run looks for closed calls, in minutes. Default is 60. |
| Toggle | Toggle will query the time range below in place of the normal time window, for backfilling historical data. |
| Text | Beginning time of the backfill range. |
| Text | End time of the backfill range. |
| Toggle | Toggle will treat local times as UTC when the database stores local times but reads them as UTC. |
| Toggle | Toggle will add the user of the latest PowerPhone Q: comment as a secondary call taker. |
| 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. |
| Text | Comma separated radio log codes that also mark a unit as dispatched and set Dispatched At. ASSGN, PAGED, D and DISP are built in. A code you list here replaces its built-in meaning. Leave blank to use only the built-in codes. |
| Text | Comma separated radio log codes that also mark a unit as en route and set Enroute At. ENRT, ENROUTE and ER are built in. A code you list here replaces its built-in meaning. Leave blank to use only the built-in codes. |
| Text | Comma separated radio log codes that also mark a unit as arrived and set Arrived At. ARRVD, ARRIVED and A are built in. A code you list here replaces its built-in meaning. Leave blank to use only the built-in codes. |
| 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. |
Note: Fields marked with an asterisk (*) are required. Username and Password are required unless Use Integrated Security is on.
