Skip to main content

CAD Connector - Motorola Spillman

GovWorx integration guide for the Motorola Spillman CAD system.

Written by Kevin Biegert

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 database field 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

CADMasterCallTable.RecordNumber

Some Spillman instances send number in place of RecordNumber.

Incident Number

CADMasterCallTable.RecordNumber

Incident Type

NatureOfCallTable.NatureOfCall

Caller Number

PersonToContactPhone

The complainant setting replaces it with MainNamesTable.HomePhoneNumber.

Caller Name

PersonToContact

The complainant setting replaces it with MainNamesTable.FirstName, MiddleName and LastName.

Agency

CADCallHistoryTable.AgencyResponsible

Agency Type

CallTypeLawFireEMS

Incident Date

TimeDateReported

Dispatch Queue At

TimeDateReported

Disposition

CADCallHistoryTable.Disposition

Response Area

CADCallHistoryTable.ZoneOfCall

Only with the fire zone setting on.

Location

RespondToAddress

Priority

CallPriority

Latitude

GeobaseAddressIDMaintenance.YCoordinate

Longitude

GeobaseAddressIDMaintenance.XCoordinate

Call Position

LoginLog.ComputerName

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

OfficerNameCodeTable.UidLoginName

Call Taker Name

CallTaker

Call Source

HowReceived

Call Received Time

TimeDateOccurredEarliest

The earliest CAD note timestamp setting replaces this with the earliest note time.

Closed At

CADCallHistoryTable.WhenCallWasClosed

The Data Agent skips incidents with no value.

Additional Context

MainNamesTable.FirstName, MiddleName, LastName, HomePhoneNumber

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

CADCallCommentsTable.UniversalUniqueID

Note Text

CADCallCommentsTable.CommentText

Note By

CADCallCommentsTable.UserName

Note Time

CADCallCommentsTable.WhenEnteredByUser

API: Responders and units

Source names are elements of the radio log tables in the response.

GovWorx field

FLEX DEX source

Notes

Unit Name

OfficerRadioLogTable.UnitNumber

The main radio log setting reads MainRadioLogTable.UnitNumber.

Personnel ID

OfficerNameCodeTable.UidLoginName

The pemain setting reads MasterPersonnelTable.EmployeeId, then BadgeNumber, matched on OfficerName. The main radio log setting reads PatrolUnitOfficerDetail.OfficerName.

Dispatched By

OfficerRadioLogTable.UserWhoLoggedCall

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

OfficerRadioLogTable.TimeOfStatusChange

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

OfficerRadioLogTable.TimeOfStatusChange

The earliest entry with UnitStatus ENRT, ENROUTE or ER, or a code in the en route codes setting.

Arrived At

OfficerRadioLogTable.TimeOfStatusChange

The earliest entry with UnitStatus ARRVD, ARRIVED or A, or a code in the arrived codes setting.

Cleared At

OfficerRadioLogTable.TimeOfStatusChange

The latest entry with UnitStatus CMPLT, CLEARED or C.

SQL: Incident fields

GovWorx field

Spillman SQL source

Notes

Incident ID

cdcall.number

CAD record key.

Incident Number

cdcall.number

Incident Type

cdcall.nature

Caller Number

cdcall.cphone

The complainant setting reads nmmain.phone.

Caller Name

cdcall.contact

The complainant setting reads nmmain.first and nmmain.last.

Agency

cdhist.agency

Empty with the CDHist bypass setting.

Agency Type

cdcall.type

Incident Date

cdhist.opened

The reported time setting and the CDHist bypass setting read cdcall.reptd.

Dispatch Queue At

cdhist.opened

Same value as Incident Date.

Disposition

cdhist.dispos

Empty with the CDHist bypass setting.

Location

cdcall.rtaddr

Priority

cdcall.priort

Latitude

gbaddr.latlong.Lat

Joined on cdcall.addrid.

Longitude

gbaddr.latlong.Long

Joined on cdcall.addrid.

Call Position

aplilog.comp

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

cdcall.rcvdby

Call Taker Name

apnames.fullnam

Joined on cdcall.rcvdby.

Call Source

cdcall.hwrcvd

Call Received Time

cdcall.whenoc1

The earliest CAD note timestamp setting replaces this with the earliest note time.

Call Pickup Time

cdcall.whenoc1

Call Hangup Time

cdcall.htime

Closed At

cdhist.closed

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

cdccomnt.uuid

Note Text

cdccomnt.comment

Note By

cdccomnt.entrdby

Note Time

cdccomnt.enttime

SQL: Responders and units

GovWorx field

Spillman SQL source

Notes

Unit Name

rlmain.unit

Personnel ID

cdunito.officer

Joined on rlmain.unit and cdunito.unitno.

Dispatched By

rlmain.dpatchr

Dispatched At

rlmain.logdate

The earliest entry with rlmain.tencode ASSGN, PAGED, D or DISP, or a code in the dispatched codes setting.

Enroute At

rlmain.logdate

The earliest entry with tencode ENRT, ENROUTE or ER, or a code in the en route codes setting.

Arrived At

rlmain.logdate

The earliest entry with tencode ARRVD, ARRIVED or A, or a code in the arrived codes setting.

Cleared At

rlmain.logdate

The earliest entry with tencode CMPLT, CLEARED or C.

SQL: Additional personnel

GovWorx field

Spillman SQL source

Notes

Secondary call taker

cdccomnt.entrdby

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

Host*

Text

Host of the Spillman FLEX DEX API. Full URL with protocol and port (e.g. https://cad.example.net:4444/DataExchange/REST)

Username*

Text

Spillman API user username

Password*

Password

Spillman API user password

Use personnel master table (pemain) for officer ID lookup

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.

Use MainRadioLogTable instead of OfficerRadioLogTable for unit tracking

Toggle

Toggle will read unit tracking from MainRadioLogTable in place of OfficerRadioLogTable. Depends on Spillman licensed modules.

Include complainant name and phone from MainNamesTable

Toggle

Toggle will override caller name and caller phone with the complainant information from MainNamesTable

Append complainant name and phone (from MainNamesTable) to additional context

Toggle

Toggle will add the complainant name and phone from MainNamesTable to Additional Context. This works with or without the toggle above.

Include only this agency (e.g. POLICE). Leave blank for all agencies

Text

Filter to a specific agency. Leave blank to read all agencies.

Agencies to exclude (comma separated, e.g. FIRE,EMS). Cannot be used with 'agency'

Text

Comma separated agencies to leave out. If you set both this and the agency setting above, the connector does not run.

Hours back to query for reported incidents (default: 24)

Text

How far back we should pull data in each query, counted from the time the incident was reported. Default is 24 hours.

Hours back to query for closed calls (default: 5)

Text

How far back we should look for calls that closed. Default is 5 hours. An incident must meet both time settings.

Login machine names for position matching (comma separated)

Text

Comma separated machine names, or parts of names, that count as call taker positions. Leave blank to match every machine.

Map fire zone (ZoneOfCall) to Response Area

Toggle

Toggle will use ZoneOfCall as Response Area.

Additional radio log codes meaning dispatched (comma separated, e.g. DSP); ASSGN, PAGED, D and DISP are built in

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.

Additional radio log codes meaning en route (comma separated); ENRT, ENROUTE and ER are built in

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.

Additional radio log codes meaning arrived/on scene (comma separated, e.g. 97); ARRVD, ARRIVED and A are built in

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.

Use earliest CAD note timestamp for Received At

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

Host*

Text

Hostname of SQL Database

Username

Text

SQL user username

Use Integrated Security

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

Password

SQL user password

Database*

Text

Database Name

Use cdCall Reported Time as Incident Date

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.

Tables: Bypass CDHist Query Using CDCall modwhen

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.

Use complainant information instead of caller information

Toggle

Toggle will use the complainant from NMMain in place of the caller information in CDCall.

Exclude table "aplilog"

Toggle

Toggle will skip the APLILog table. Call Position stays empty.

Position logon lookback hours (default: 16)

Text

How many hours before a call to look for the call taker logon that sets Call Position. Default is 16.

CDCall table view name override

Text

Name of the view to read in place of the cdcall table.

CDHist table view name override

Text

Name of the view to read in place of the cdhist table. Not used when the bypass toggle is on.

CDCComnt table view name override

Text

Name of the view to read in place of the cdccomnt table.

GBAddr table view name override

Text

Name of the view to read in place of the gbaddr table.

RLMain table view name override

Text

Name of the view to read in place of the rlmain table.

APLILog table view name override

Text

Name of the view to read in place of the aplilog table.

APNames table view name override

Text

Name of the view to read in place of the apnames table.

CDUnitO table view name override

Text

Name of the view to read in place of the cdunito table.

NMMain table view name override

Text

Name of the view to read in place of the nmmain table. Used with the complainant toggle.

Minutes back to query for events

Text

How far back the first run looks for closed calls, in minutes. Default is 60.

Enable backfill mode

Toggle

Toggle will query the time range below in place of the normal time window, for backfilling historical data.

Backfill time range: Beginning (yyyy-mm-dd hh:mm) (24h time)

Text

Beginning time of the backfill range.

Backfill time range: End

Text

End time of the backfill range.

Adjust for UTC/local time zone mismatch

Toggle

Toggle will treat local times as UTC when the database stores local times but reads them as UTC.

Use latest PowerPhone Q: comment user as secondary call taker AdditionalPersonnel

Toggle

Toggle will add the user of the latest PowerPhone Q: comment as a secondary call taker.

Maximum lookback in hours

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.

Additional radio log codes meaning dispatched (comma separated, e.g. DSP); ASSGN, PAGED, D and DISP are built in

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.

Additional radio log codes meaning en route (comma separated); ENRT, ENROUTE and ER are built in

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.

Additional radio log codes meaning arrived/on scene (comma separated, e.g. 97); ARRVD, ARRIVED and A are built in

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.

Use earliest CAD note timestamp for Received At

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.

Did this answer your question?