OperationsCommander - https://opscom.wiki

Setup & Configuration for Admins

All articles related to setting up and configuring OPSCOM are stored here.

Admin Tools & Data Maintenance

Items on the tools menu control rarely accessed but important setup and configuration tools for OPSCOM.  Data Maintenance options are also here.

Admin Tools & Data Maintenance

Data Maintenance Articles

Data maintenance is crucial for ensuring the accuracy, reliability, and optimal performance of any system.

Regular data maintenance helps to:

The following articles all pertain to Data Maintenance Activities:

Admin Tools & Data Maintenance

Using the Database Importer (Beta)

The Database Importer in OPSCOM provides administrators with a powerful tool to import existing data into the system using CSV files. This functionality is essential for initial data migration, mass updates, or integrating data from external systems, ensuring that your OPSCOM database is populated and maintained efficiently. This tool is currently in BETA.

Setup & Configuration

  1. Hover over Tools, then click Data Importer - BETA to access the tool.
Permissions Requirements

If the Data Importer page is not visible, the user's account does not have the necessary permissions enabled. To allow a user to import or manage data, the following permissions must be configured:

These permissions can be found under the Systems tab of the permissions management page. Enable them to grant a user access to the Database Importer functionality. For more information on configuring permissions, please refer to the User Roles and Permissions wiki article.


Using this Feature

The Database Importer allows data to be imported into a select number of tables within OPSCOM.

Currently Supported Tables for Import
Importing Data into a Table

Note - There is a limit of 10000 records to be imported in one batch. This includes the header row.

To begin a new import:

  1. Click the Upload button next to the desired destination table that you wish to import information into.
  2. A modal window will open, prompting you to select the CSV file. Your imported CSV file can be comma-differentiated or semi-colon-differentiated.
  3. Once a file has been selected, click Submit to begin the upload process.
  4. After the CSV file has been successfully uploaded, the Table Import screen will appear.

Converting Fields to Text to Avoid Truncating Leading Zeros - When converting data from Excel to CSV, issues can arise, such as the truncation of leading zeros in numbers (e.g., student IDs, staff numbers). To prevent this, you can force Excel to treat cells as text before converting to CSV as below:

  1. Open a new sheet in your Excel workbook.
  2. In cell A1 of the new sheet, type the formula: ="'"& then click on cell A1 of your original spreadsheet. (This formula is: equals sign, double quote, apostrophe, double quote, ampersand, then the cell reference.)
  3. Drag this formula down and across through the same number of rows and columns as your original data. This will replicate your data on the new page, but an apostrophe (') will be placed in front of all values, forcing Excel to treat them as text.
  4. Save the new sheet as a .CSV file. Ensure you only save the new page. This method effectively preserves leading zeros during the CSV conversion.

Column Matching

On the Table Import screen, you will match the columns from your imported CSV file to the corresponding columns in the destination table within OPSCOM.

Once the columns have been properly matched and you click the Process button, you will be redirected back to the main page while the import is completed in the background.

Post-Import Processing and Settings

After the initial import of data into the base table, some tables run additional processing on the information to establish relationships and apply default settings. These processes run separately from the initial import and are not affected by the duplicate settings chosen for the import.

Status Emails

Over the course of the import process, a total of two emails will be sent to the user who initiated the import:

Table-Specific Post-Processing Details
Order of Operations for Related Imports

Imports that contain related information should generally be done in a specific order, as some tables contain information that references another table. While imports can be done out of order, records may not be associated correctly if their dependencies aren't met. In general, the tables a record requires should be imported before that record's table.

Table to Import Requires (Imported Before) Notes
UserProfile (None) This should generally be the first table imported.
Vehicles UserProfile Having the user record created before the vehicle allows the user to be associated with the vehicle by a VehicleJoin record created during post-import processing.
OffenceLocations (None) Does not require any data beforehand but should be imported before Violations to ensure proper location marking.
Permits Vehicles, UserProfile Having a vehicle record created before the permit allows the permit to be associated with the vehicle by a PermitJoin record created during post-import processing. If there is also an associated user record, the permit can be marked as paid by joining the user and permit through a payment record (if the option was selected).
Violations Vehicles, UserProfile, OffenceLocations A violation requires the existence of a vehicle record beforehand for the violation to be created at all. Offence locations should be imported before violations for the violation to have its location properly marked.
User-Association Settings

Some tables include additional post-processing to associate newly-created records with existing users. For this to work, the unique identifier for the user (UserUUID or Email) must be selected consistently for both the user's primary record and any associated records (Vehicles, Permits). Ensure the same value is selected for both sections during the import setup.

The tables that currently have this user-association option are:

Unique Identifiers & Duplicate Settings

The Unique Identifiers are the columns used to determine if a record's information is unique. If the information in these columns is duplicated in the file or already exists in the system, it will be handled based on your selected Duplicate Settings:

The number of columns that mark a record as unique varies by table:

Foreign Lookup Columns

Some data in one table originates from another table and is stored as an ID in the destination table (known as a foreign key).

Below is a list of common foreign lookup columns and their source tables:

Inserting Into Table Column Inserting Into Sourced From Table
UserProfile prov Provinces
  UserTypeID UserTypes
Vehicle ProvID Provinces
  ColourID VehicleColours
  MakeID VehicleMake
  TypeID VehicleType
  PlateTypeID VehiclePlateType
Permits LotNameID LotName
  StateID PermitState
Violations VehicleID Vehicle
  TicketType TicketCategory
  LocationID OffenceLocations
Table Reset

In addition to importing data, the Database Importer page also allows for the purging of an entire table's contents.

  1. Click the Reset button next to the table you wish to empty.
  2. A new modal window will open, prompting you to confirm that you wish to delete the contents of the table. 

    • Irreversible Action: This action is permanent. Once the data is deleted, it cannot be recovered. Ensure you are absolutely certain before proceeding.

  3. If you are certain the data should be deleted, type DELETE (in all caps) into the confirmation text field and press the Delete button.

  4. The selected table will then be purged of all records.

Some tables are closely connected to the records of a related table. Removing the data they contain will also purge the contents of the related table:

Note: Only the table contents are deleted; the table structure itself remains intact.


Best Practices & Considerations

Admin Tools & Data Maintenance

Importer Field Descriptions

This article provides a comprehensive guide to the fields used within the OPSCOM Database Importer. For each supported table, you'll find a list of column names, their internal system names, their requirement level (Unique ID, Recommended, Optional), data type, and a detailed description, ensuring you can prepare your CSV files accurately for successful data imports.

Understanding Field Requirements

When preparing your CSV files for import, it's essential to understand the different levels of field requirements:


Importer Columns

Below is a detailed breakdown of the columns available for each supported import table, including their internal names, requirement levels, types, and descriptions.

UserProfile Table

Column Name

Internal Name

Requirement

Type

Description

User Unique ID (UUID)

UserUUID

Unique ID

  • This or Email is Required

Standard

The primary identifier. If UUID is not supplied, email will be used as the key identifier instead.

 

This value identifies the user as a unique record and it or the email is required to import a record.

Email Address

email

Unique ID

  • This or UUID is Required

Standard

The secondary identifier. If UUID is not supplied, email will be used as the key identifier instead.

 

This value identifies the user as a unique record and it or the UUID is required to import a record.

Username

username

Recommended

Standard

The username of the user.

First Name

firstName

Recommended

Standard

The first name of the user.

Middle Name

middleName

Optional

Standard

The middle name of the user.

Last Name

lastName

Recommended

Standard

The last name of the user.

Password

password

Optional

Standard

The password of the user.

User Type

UserTypeID

Recommended

Foreign Key

  • UserTypes Table

The user type of the user. Attaches to the UserTypes table.

 

The values supplied by the user in the uploaded file are expected to be values from the TypeName column of the UserTypes table, as these are the values that will be matched against.

 

The values in the uploaded file must be an exact match to the values in the TypeName column, matching the capitalization, spelling, and spacing exactly, or else it won’t be counted as a match.

 

The UserTypeID from the UserTypes table matching the name will inserted into the record in the base table. The value will be left blank in the imported record if no matches are found.

Street Address

street

Optional

Standard

The street address of the user.

City

city

Optional

Standard

The city of the user.

Province/

State

prov

Optional

Foreign Key

  • Provinces Table

The province or state of the user. Attaches to the Provinces table.

 

The values supplied by the user in the uploaded file are expected to be values from the ProvName column of the Provinces table, as these are the values that will be matched against. These are the long names of the province and not the abbreviation; as in, Ontario and not ON.

 

The values in the uploaded file must be an exact match to the values in the ProvName column, matching the capitalization, spelling, and spacing exactly, or else it won’t be counted as a match.

 

The ProvID from the Provinces table matching the name will inserted into the record in the base table. The value will be left blank in the imported record if no matches are found.

Postal Code

postal

Optional

Standard

The postal or ZIP code of the user.

Cellphone Number

phonecell

Optional

Standard

The cellphone number of the user.

Employee Number

employNo

Optional

Standard

The employee number of the user.

Student Number

studentNo

Optional

Standard

The student number of the user.

Secondary Phone Number

sPhone

Optional

Standard

The secondary phone number of the user.

Date of Birth

DOB

Optional

Standard

The date of birth of the user.

Preferred Name

preferredname

Optional

Standard

The preferred name of the user.

Public Comment

publicComment

Optional

Standard

The public comment for the user. Visible to the user.

Private Comment

privateComment

Optional

Standard

The private comment for the user. Not visible to the user.

Login Source

loginSource

Optional

Standard

The method by which the user logs into the system.

If a login source is not supplied for a user, it will be set to OPSCOM by default.

OffenseLocations Table

For additional information on this table, refer to this wiki article.

Column Name

Internal Name

Requirement

Type

Description

Location Name

LocationName

Unique ID

  • Required

Standard

The name of the location being imported. This value identifies the location as a unique record and is required to import a record.

Writer Visible

WriterVisible

Optional

Standard

Whether the writer of a violation of a ticket made in the location is visible to the user.

GIS Number

GisNo

Optional

Standard

The GIS number is a geographic location code and is only used by certain clients. Associated with GIS maps (https://www.gismaps.org/).

Vehicle Table

Column Name

Internal Name

Requirement

Type

Description

Licence Plate

Plate

Unique ID

  • Required

Standard

The license plate number of the vehicle.

This value identifies the vehicle as a unique record and is required to import a record.

Vehicle Year

Year

Optional

Standard

The year of the vehicle.

Active Vehicle

active

Optional

Standard

Indicates whether the vehicle is active or not.

If not supplied, vehicles will be set to active by default.

Plate Type Name

PlateTypeID

Optional

Foreign Key

  • VehiclePlateType Table

The plate type of the vehicle. Attaches to the VehiclePlateType table.

 

The values supplied by the user in the uploaded file are expected to be values from the TypeName column of the VehiclePlateType table, as these are the values that will be matched against.

 

The values in the uploaded file must be an exact match to the values in the TypeName column, matching the capitalization, spelling, and spacing exactly, or else it won’t be counted as a match.

 

The TypeID from the VehiclePlateType table matching the name will inserted into the record in the base table. The value will be left blank in the imported record if no matches are found.

Province/

State

ProvID

Optional

Foreign Key

  • Provinces Table

The province or state of the user. Attaches to the Provinces table.

 

The values supplied by the user in the uploaded file are expected to be values from the ProvName column of the Provinces table, as these are the values that will be matched against. These are the long names of the province and not the abbreviation; as in, Ontario and not ON.

 

The values in the uploaded file must be an exact match to the values in the ProvName column, matching the capitalization, spelling, and spacing exactly, or else it won’t be counted as a match.

 

The ProvID from the Provinces table matching the name will inserted into the record in the base table. The value will be left blank in the imported record if no matches are found.

Vehicle Make Name

MakeID

Optional

Foreign Key

  • VehicleMake Table

The make of the vehicle. Attaches to the VehicleMake table.

 

The values supplied by the user in the uploaded file are expected to be values from the MakeName column of the VehicleMake table, as these are the values that will be matched against.

 

The values in the uploaded file must be an exact match to the values in the MakeName column, matching the capitalization, spelling, and spacing exactly, or else it won’t be counted as a match.

 

The MakeID from the VehicleMake table matching the name will inserted into the record in the base table. The value will be left blank in the imported record if no matches are found.

Vehicle Type Name

TypeID

Optional

Foreign Key

  • VehicleType Table

The type of the vehicle. Attaches to the VehicleType table.

 

The values supplied by the user in the uploaded file are expected to be values from the TypeName column of the VehicleType table, as these are the values that will be matched against.

 

The values in the uploaded file must be an exact match to the values in the TypeName column, matching the capitalization, spelling, and spacing exactly, or else it won’t be counted as a match.

 

The TypeID from the VehicleType table matching the name will inserted into the record in the base table.

 

The value will be left blank in the imported record if no matches are found.

Vehicle Colour Name

ColourID

Optional

Foreign Key

  • VehicleColours Table

The colour of the vehicle. Attaches to the VehicleColours table.

 

The values supplied by the user in the uploaded file are expected to be values from the ColourName column of the VehicleColours table, as these are the values that will be matched against.

 

The values in the uploaded file must be an exact match to the values in the ColourName column, matching the capitalization, spelling, and spacing exactly, or else it won’t be counted as a match.

 

The ColourID from the VehicleColours table matching the name will inserted into the record in the base table. The value will be left blank in the imported record if no matches are found.

VIN Number

vin

Optional

Standard

The Vehicle Identification Number (VIN) of the vehicle.

Permits Table

Column Name

Internal Name

Requirement

Type

Description

Permit Number

PermitNo

Unique ID

  • Required

Standard

This field is the first primary identifier. Both it and LotNameID must be provided to create a new permit

This value identifies the permit as a unique record and is required to import a record.

Lot Name (Long)

LotNameID

Unique ID

  • Required

Foreign Key

  • LotNames Table

The long name of the lot associated with the permit. Attaches to the LotNames table.

 

This field is the second primary identifier. Both it and PermitNo must be provided to create a new permit.

This value identifies the permit as a unique record and is required to import a record.

 

The values supplied by the user in the uploaded file are expected to be values from the LotName column of the LotNames table, as these are the values that will be matched against. These are the long form version of the lot name, and not the lot short name.

 

The values in the uploaded file must be an exact match to the values in the LotName column, matching the capitalization, spelling, and spacing exactly, or else it won’t be counted as a match.

 

The LotNameID from the LotNames table matching the name will inserted into the record in the base table. The value will be left blank in the imported record if no matches are found.

Visible

visible

Optional

Standard

Indicates whether the permit is visible or not.

Permit Status

status

Optional

Standard

The status of the permit.

Permit State

StateID

Optional

Foreign Key

  • PermitState Table

The state of the permit.

Violations Table

Column Name

Internal Name

Requirement

Type

Description

Ticket Number

Ticket

Unique ID

  • Required

Standard

The unique identifier for the violation.

 

This value identifies the violation as a unique record and is required to import a record.

Licence Plate

VehicleID

Recommended

Foreign Key

  • Vehicle Table

The license plate number of the associated vehicle. Attaches to the Vehicle table.

 

The values supplied by the user in the uploaded file are expected to be values from the Plate column of the Vehicle table, as these are the values that will be matched against.

 

The values in the uploaded file must be an exact match to the values in the Plate column, matching the capitalization, spelling, and spacing exactly, or else it won’t be counted as a match.

 

The VehicleID from the Vehicle table matching the name will inserted into the record in the base table. The value will be left blank in the imported record if no matches are found.

Ticket Type Name

TicketType

Recommended

Foreign Key

  • TicketCategory Table

The type of the ticket. Attaches to the TicketCategory table.

 

The values supplied by the user in the uploaded file are expected to be values from the TicketTypeName column of the TicketCategory table, as these are the values that will be matched against.

 

The values in the uploaded file must be an exact match to the values in the TicketTypeName column, matching the capitalization, spelling, and spacing exactly, or else it won’t be counted as a match.

 

The TicketTypeID from the TicketCategory table matching the name will inserted into the record in the base table. The value will be left blank in the imported record if no matches are found.

Fine Amount

Fine

Recommended

Standard

The amount of fine associated with the ticket.

Towing Amount

Towing

Optional

Standard

The amount of towing charges associated with the ticket.

Tax Amount

taxAmount

Optional

Standard

The amount of tax associated with the ticket.

Issued Date

Issued

Recommended

Standard

The date the ticket was issued.

Due Date

Due

Recommended

Standard

The due date for payment of the ticket.

Ticket Writer

Writer

Optional

Standard

The admin who wrote the ticket.

Violation Location Name

LocationID

Recommended

Foreign Key

  • OffenceLocations Table

The name of the location where the violation occurred. Attaches to the OffenceLocations table.

 

The values supplied by the user in the uploaded file are expected to be values from the LocationName column of the OffenceLocations table, as these are the values that will be matched against.

 

The values in the uploaded file must be an exact match to the values in the LocationName column, matching the capitalization, spelling, and spacing exactly, or else it won’t be counted as a match.

 

The LocationID from the OffenceLocations table matching the name will inserted into the record in the base table. The value will be left blank in the imported record if no matches are found.


Best Practices & Considerations

Admin Tools & Data Maintenance

Create or Refresh a Preview Space

Preview Spaces in OPSCOM provide clients and support staff with a secure, isolated testing environment that mirrors your live production system's data. These spaces are invaluable for testing new features, staging changes, or conducting training without impacting your operational system, ensuring a safe sandbox for development and learning.

Setup & Configuration

Preview spaces are typically created on demand. Your production/live OPSCOM system is used to either create a new preview space or refresh an existing one with current or historical data.

Creating or Refreshing a Preview Space
  1. Click Tools, then Database to Preview.

From this page, you have two options for refreshing your preview database:

It may take a few minutes to refresh the database. Generally, a database is refreshed in 1-2 minutes, but it can take up to 15 minutes depending on the size of your database. A message will be displayed along the top of the screen notifying you when the database refresh is complete.

Once the preview database has been refreshed, your preview system will automatically be created or updated. You can access the preview system by adding ".preview" before "OPSCOM.com" in your browser's address bar. For example, if your production space is https://tomahawku.OPSCOM.com, your preview space will be https://tomahawku.preview.OPSCOM.com.


Using this Feature

Accessing Your Preview Space

As an OPSCOM client, you can access your preview space directly by simply adding the ".preview." suffix to your subdomain name. For instance, if your production site is located at https://yourorganization.OPSCOM.com, your preview space can be found at https://yourorganization.preview.OPSCOM.com.

Preview Space Banner

To clearly distinguish a preview space from a live production system, all preview spaces are denoted with an amber warning banner displayed prominently at the top of the page.

Locking and Unlocking Database Reset Option

You can now lock and unlock preview and development OPSCOM databases to prevent them from being reset or refreshed accidentally.

  1. On your preview site, click Tools, then Reset Database.
  2. Toggle the lock/unlock setting as needed.
    • You will be prompted to provide a reason for locking or unlocking the database.
    • A history of the previous 10 lock/unlock actions will be displayed below for your reference.

This feature allows you to ensure that if you are actively working on a preview/development system and do NOT wish for your changes to be reset or lost, you can place a lock. This lock notifies others attempting to refresh the database that a reset is not desired.


Best Practices & Considerations

Admin Tools & Data Maintenance

Resolve Duplicate Options

The Resolve Duplicates feature in OPSCOM allows administrators to identify and merge duplicates by email, student number, staff number and vehicle (plate) in the system. This is crucial for maintaining data accuracy, preventing operational errors, and ensuring that enforcement and permit management processes are based on clean, unique vehicle data. This article focuses on resolving duplicates by vehicle, however, the concept is the same for other data types.

  1. Click on Tools, hover over Resolve Duplicates, then click By Vehicle.

Using this Feature

On the Resolve Duplicates By Vehicle page, you will be presented with options to define the criteria for identifying potential duplicate vehicle records.

Duplicate Identification Options

There are two choices to generate a list of potential duplicates:

Strict Duplicate

Purpose: This option generates a list of vehicles where all three primary unique identifiers are identical. This is for finding exact, unambiguous duplicates. Unique identifiers are:

Include Different Plate Types

Purpose: This option generates a list of vehicles where the Plate and State/Province are identical, but the Plate Type may differ. This is particularly useful for identifying potential input errors where a vehicle might have been entered twice with the correct plate and province, but an incorrect or unspecified plate type was initially used.

Example: If a vehicle is a beige BMW sports car with plate ABC123, province Ontario, and an unspecified Plate Type, but there's another record for a beige BMW sports car with plate ABC123, province Ontario, and Plate Type Passenger, it is highly probable that these are the same vehicle entered as a duplicate. Comparing the vehicle description (make, model, color) can help confirm such cases.

Resolving Duplicates

Once a list of potential duplicates is generated based on your chosen criteria:

  1. Review the list carefully, paying close attention to vehicle descriptions and other details to confirm actual duplicates.
  2. For each pair of duplicate records you wish to merge, click the Merge button provided next to the entries.
  3. Clicking Merge will take you to the merge function window, where you can select which information to retain from the duplicate records and then finalize the merge.

2024-08-13_14-41-29.png


Best Practices & Considerations

Admin Tools & Data Maintenance

History Search

The History Search feature in OPSCOM allows administrators to quickly locate and review historical system activities and events. This tool is invaluable for auditing, troubleshooting, and investigating specific actions related to users, vehicles, or violations, providing a comprehensive log of system interactions.

Using this Feature

1. Click Tools, then History Search. The History Dump page will be displayed.

You can search using a single identifier or a combination of them to narrow down your results.

Available Search Criteria
Steps to Perform a History Search
  1. On the History Dump page, enter your desired search criteria into one or more of the available fields (e.g., enter a specific Violation Ticket number, as shown in the example) and click Submit.
  2. All OPSCOM history records that match your entered search criteria will be displayed. 

Best Practices & Considerations

Admin Tools & Data Maintenance

Purge Old - Explained

The Purge Old Data feature in OPSCOM allows administrators to remove inactive historical records from the system. This process is essential for maintaining database efficiency, improving system performance, and ensuring that your data remains relevant and manageable by automatically archiving or deleting old, unused information. The only records that will be purged are ones that have not had any activity associated with them for more than 7 years.


Using this Feature

1. Click Tools, then Purge Old Data.

When you click Purge Old Data, the system initiates a process to identify records that meet the purging criteria.

  1. Upon activation, a progress bar will appear, indicating the number of records being identified for potential purging. The system compiles a list of any user activity and associated record updates that have occurred within the last seven years.
  2. The compiled "activity list" determines which data to exclude from the purge. The script then proceeds to purge any data that is not on this active list.
  3. To complete the process and execute the purge, click Purge these records.

An important business rule is that any small update or activity on a record will "restart" its 7-year clock, meaning the record will then be excluded from purging for another seven years from that last activity date.

What Gets Purged?

The following record types will be purged if they have had no activity in the last 7 years:

What Does NOT Get Purged?

The following record types will NOT be purged, regardless of their last updated date, ensuring the retention of critical historical and incident-related information:


Best Practices & Considerations

Admin Tools & Data Maintenance

Purging Incidents

The ability to purge incidents from OPSCOM allows administrators to permanently remove outdated incident records from the system. This process is critical for maintaining data relevance, complying with data retention policies, and optimizing database performance. This article outlines the two methods for incident purging: individual deletion via incident search and bulk deletion using the Purge Incidents tool.

Setup & Configuration

To enable incident purging capabilities for an administrator, specific permissions must be granted.


Using this Feature

There are two primary methods for purging incidents in OPSCOM: individually through the Incident Search, or in bulk using the Purge Incidents tool.

Method 1: Using the Delete Incident Button (Individual Purge)

This method allows for the deletion of a specific incident after searching for it.

  1. Search for the incident you wish to purge using the standard Incident Search functionality.
  2. Once the incident details are displayed, observe the Delete Incident button.
    • The Delete Incident button will be available (active) only if the incident record is older than 7 years.
    • If the incident is less than 7 years old, the button will appear as "Delete Not Available" and will be greyed out, preventing deletion.
  3. If the button is active, click the Delete Incident button.
  4. Follow any subsequent prompts or confirmation messages to finalize the deletion of the incident.
Method 2: Using the Purge Incidents Tool (Bulk Purge)

This tool allows for searching and purging multiple incidents simultaneously based on specified criteria.

  1. Click Tools, then Purge Incidents.
  2. The Search for Incidents to Purge screen will be displayed.
  3. Enter your search criteria into the available fields (e.g., date ranges, incident types, specific IDs).
    • The results displayed will be limited to the oldest 300 records that match your criteria.

      Note: When entering a value for "Number of Instances," the search field functions as "greater than or equal to." Therefore, supplying "1" might still display incidents with more than one instance.

  4. Review the displayed list of incidents.
  5. Enable the Delete checkbox next to each incident you wish to purge.
  6. Click the Purge Records button.
  7. A confirmation prompt will display. Click the Delete button within this prompt to confirm the action.

Best Practices & Considerations

      Admin Tools & Data Maintenance

      Handheld Devices and Commons

      The Handhelds Devices section in OPSCOM allows administrators to manage and configure handheld devices used for enforcement and data collection. This includes registering new devices, pushing messages, and updating device settings, ensuring seamless operation for field personnel and accurate data synchronization.

      Refer to this wiki article for more information.

      Admin Tools & Data Maintenance

      Managing Recurring and Onetime System Tasks

      OPSCOM utilizes both recurring and onetime system tasks to automate various back-end processes, such as data synchronization, report generation, or system clean-up. This article guides OPSCOM administrators on how to access, monitor, enable, and disable these critical system tasks, ensuring efficient operation and maintenance of the OPSCOM environment.

      Accessing System Tasks

      1. Click Tools (the Toolbox), then click View System Task Logs.
      2. On the Scheduled Tasks page, there are two sections, Recurring tasks and Onetime tasks. From this screen we can see stats on when the task has run and how long it took to run. We can also enable or disable tasks from running.

      The Scheduled Tasks page is divided into two main sections: Recurring tasks and Onetime tasks. For each task listed, administrators can view its status, statistics, and manage its execution.

      Key Information Displayed 
      Available Actions & Buttons

      Please be aware, there are other settings that may be important to set correctly before enabling any system task.

      image.png


      Best Practices & Considerations


      Admin Management Tools

      Accessed from the System Configuration menu, this is where you create/edit roles and permission as well as Admin User Accounts.

      Admin Management Tools

      Manage Roles and Permissions

      Roles and Permissions in OPSCOM provide granular control over what administrative users can access and do within the system. This feature allows administrators to define specific responsibilities, enhance security, and ensure that each user has appropriate access levels, streamlining operations and maintaining data integrity.

      Using this Feature

      1. Click System Configuration, then Admin Management, and click Manage Roles.
      Creating and Managing Roles

      Roles are central to the permissions system, acting as templates for sets of permissions.

      1. The Manage Administrator Roles page will display. The System Administrator (Primary) role is pre-defined and allows you to create new roles and assign them to other admin users.
      2. To create a new role, click the Add New Role button at the bottom of the page.
      3. Enter a descriptive Role Name and a Description for that role.
        • The description will appear as a rollover tooltip when you mouse over the Edit Role button for that role.
      4. Click Save Role to save your new role.

        FVUimage.png
      Editing Existing Roles

      You can modify the name and description of any role (except the System Administrator role).

      1. On the Manage Administrator Roles screen, click the Edit Role button next to the role you wish to update.
      2. Make your desired changes to the Role Name and/or Description.
      3. Click Save Role to save your edits.
      Assigning Permissions to a Role

      Once a role is created, you'll define what actions users assigned to that role can perform by setting its permissions. Refer to this article for more detailed Permissions information.

      1. On the Manage Administrator Roles screen, click the Permissions button next to the role you want to configure. The Editing Permissions screen will display.
      2. The top bar displays various icons, mirroring the OPSCOM menu structure. The number next to each icon indicates how many permissions within that category have been selected for the current role.
      3. Click an icon (e.g., a "Permit" icon, a "Violations" icon) to display the specific permissions available within that category.
      4. To grant a permission, enable the checkbox next to that permission's name.
      5. Once you have navigated through each icon and selected all the necessary permissions for the role, click Save Permissions. The role, with its defined permissions, is now created and ready for assignment.
      Assigning Roles to Admin Users

      After roles are defined, you can assign them to your administrative users.

      1. Click System Configuration, then Admin Management, and click Edit Admin Users. The Manage Active Administrators page will display.
      2. Select an existing user you wish to modify, or choose to create a new user.
      3. On the left side of the screen, add or confirm the User Information (e.g., name, email).
      4. On the right side, select the role(s) you wish to apply to that user from the available options.
      5. You can also add a Comment for any relevant notes about the user's role or status.
      6. Click Update User when you have finished making your changes.

      Best Practices & Considerations

      Admin Management Tools

      Manage Administrator Groups

        Administrator Groups in OPSCOM allow you to organize administrative users into logical teams or departments. This feature simplifies management by enabling you to apply specific settings, distribute communications, or assign tasks to a collective of administrators rather than managing each user individually, enhancing organizational efficiency and control.

        Using this Feature

        1. Click System Configuration, then Admin Management, and click Manage Groups.

        You'll be directed to the Manage Administrator Groups page, which lists all existing groups. Initially, this page may be empty if no groups have been created yet.

        Creating a New Administrator Group
        1. Click Add New.
        2. The Adding New Group form will appear where you can define your group.
        3. Fill out the required information for the group, such as the Group Name.
        4. Click Save Group to finalize the creation.

        Once saved, your newly created group will appear in the list on the left-hand side of the page.

        Working with Groups

        After creating groups, you can perform various management actions. While the provided content focuses on creation, typical group management also involves:

        • Editing Group Details: You can usually click on a group's name or an Edit button next to it to modify its name or other associated settings.
        • Assigning Administrators to Groups: Administrators are assigned to groups through their individual user profiles.
          1. Navigate to System Configuration, then Admin Management.
          2. Click Edit Admin Users.
          3. Select the desired administrator.
          4. Within their profile settings, you'll find an option to assign them to one or more Admin Groups.
        • Deleting Groups: Most systems allow you to delete groups that are no longer needed, often with a confirmation prompt. Be aware that deleting a group might impact any administrators or settings associated with it.

        Best Practices & Considerations

        • Logical Organization: Create groups that reflect your organizational structure (e.g., "Enforcement Team," "Permit Office Staff," "IT Support"). This makes it easier to manage permissions, communicate, and assign responsibilities.
        • Streamlined Management: Using groups simplifies tasks like sending system-wide messages or applying default settings, as you can target a group rather than selecting individual administrators.
        • Clarity in Naming: Use clear and concise names for your groups to avoid confusion among administrators.
        • Regular Review: Periodically review your Administrator Groups to ensure they remain relevant and accurately reflect your team's structure and needs. Remove any outdated or unused groups to maintain a clean system.
        Admin Management Tools

        Manage Admin User Accounts

        Creating and managing administrator accounts in OPSCOM is essential for granting system access to staff, defining their responsibilities through roles, and maintaining secure and accurate user records. This article guides OPSCOM administrators through the process of creating new admin accounts, editing existing ones, resetting passwords, and disabling accounts as needed.

        Using this Feature

        1. Hover over System Configuration, click Admin Management, then Edit Admin Users. The Manage Active Administrators screen displays, providing options for both new user creation and existing user modification.
        Creating a New Admin Account
        1. On the Manage Active Administrators screen, select + Create New Admin.
        2. The screen will display the Create New Administrator form divided into two sections:
          • On the left, you will enter the user information for the new administrator (e.g., username, first name, last name, email, and initial password).
          • On the right, in the Active Roles form, you will select the admin role(s) this person will be granted. For more information about Roles and Permissions refer to this wiki article.
        3. Once all information is entered and roles are selected, click Insert New User to add the admin account to the system.

        Multi-factor Authentication (MFA) is now required when creating an Admin account. After the account is created, it must first be accessed through the Admin portal before attempting to sign in on a handheld device. During the initial login, a One-Time Password (OTP) will be sent to the email associated with the new Admin account, and you will be prompted to reset the password. For more details, please refer to our MFA wiki article.

        Editing an Existing Admin Account
        1. On the Manage Active Administrators page, select the user you wish to modify.
        2. You can now change any of the available options for that selected user, including their personal information, roles, and account status.
        3. Click Update User when you are finished making your changes.
        Viewing Login Activity
        Resetting an Admin's Password
        1. Locate the specific administrator's account. 
        2. In the Password field, enter a temporary password. The password is hidden (displayed as asterisks "**********"), but you can simply type over the existing symbols.
        3. Inform the admin of this temporary password.
        4. When the admin logs in using the temporary password, they will be prompted to update their password to a more secure, personal one.
        Disabling an Admin Account

        Admin users cannot be permanently deleted from the system because their accounts are often linked to historical data (e.g., ticket issuance, system changes). If an admin user changes roles or leaves the organization, the best practice is to disable their account.

        Important Reporting Note - It is very important to leave the admin user's permissions in place even when disabling their account, as these permissions will still affect historical reporting (e.g., showing which permissions were active at the time certain actions were performed). Once the account is disabled, any existing permissions obviously cannot be actioned by that user, but they remain associated for reporting purposes.

        1. Hover over the System Configuration menu, click Admin Management, then Edit Admin Users.
        2. Select the user's account you wish to disable (e.g., "jim_daniels").
        3. The user's profile will display. Locate the checkbox titled Activate this account and allow system login.
        4. Uncheck this box to disable the account.
        5. Click Update User to apply the change.

        After disabling, the account will now appear on the Manage Disabled Administrators page, accessed by clicking on View Disabled on the Manage Active Administrators page.

        This action can be reversed at any time by editing the user account and re-checking the Activate this account and allow system login checkbox.


        Best Practices & Considerations



        Admin Management Tools

        IP Filtering for Admin Users

        IP Filtering in OPSCOM provides administrators with a robust security layer by restricting user access based on their device's IP (Internet Protocol) address. This feature enhances system security by ensuring that only authorized users from specified networks or devices can log in to OPSCOM, allowing for tailored access control according to individual roles and organizational security policies.

        Setup & Configuration

        IP filtering configurations are managed within each administrator's user profile in OPSCOM.

        What is an IP Address?

        An IP address is a unique numerical label assigned to each device connected to an IP network. It typically consists of four groups of numbers (octets), separated by dots (e.g., 192.168.1.1).

        To Configure IP Filtering in OPSCOM:

        1. Hover over the System Configuration, then Admin Management, and click Edit Admin Users.
        2. On the Manage Active Administrators page, select the specific user you wish to edit.
        3. Locate the Allowed IPs field within the user's profile configuration. This is where you will enter the IP filtering rules.

        2025-06-17_10-10-50.jpg


        Using this Feature

        The Allowed IPs field in an admin user's profile controls their access to the OPSCOM system. The level of access can be precisely tailored:

        Configuration Options for Allowed IP Addresses

        Allow Access from Any Network (Least Restrictive)

        This is typically used for high-level managers or directors who require access from diverse locations (e.g., while traveling, from a home office, or an internet cafe).

        Note: In some cases, networks might be locked down or behind a firewall. Additional configuration on the part of your IT department may be required to allow external access.

        Restrict Access to a Specific Network

        This is ideal for regular office workers who primarily require access only from their designated office network.

        Restrict Access to a Specific Computer (Most Restrictive)

        This is suitable for part-time employees or student workers who are designated to use only one particular machine for OPSCOM access.

        Allow Access from Multiple Specific Computers

        This is useful in office settings where an employee may use a few designated workstations.

        Allow Access from Multiple Specific Networks

        This is applicable for employees working out of multiple campus locations or different buildings within a municipal organization, each on a distinct local area network.

        Basic IP Filtering Rules Recap


        Best Practices & Considerations

        System Configuration

        System Configuration

        Guide to System Settings

        System Settings in OPSCOM provide administrators with comprehensive control over the core functionalities and behaviors of their application, primarily impacting the administrative side. This centralized configuration area allows for fine-tuning various components, from general system parameters and security protocols to specific module functionalities like parking, violations, and payments, ensuring the system operates according to organizational needs.

        1. Click System Configuration, then System Settings to access this area.  
        2. Explore the menus. Hovering over any menu item will explain with a tooltip what this setting controls.
        3. Settings in Blue are read-only to Admins. Only a Tomahawk User can enable/disable this. For help with this contact support@ops-com.com.

        Only Admins that have the permission to Manage System Configuration, will see the System Settings. If they have that permission, they can edit any system setting available. 


        Best Practices & Considerations

        System Configuration

        Configuring SAML SSO with OPSCOM

        What is Single Sign-On (SSO)

        Single Sign-On (SSO) simplifies user access to OPSCOM by allowing them to authenticate using their existing, managed corporate accounts. This eliminates the need for separate OPSCOM usernames and passwords, enhancing convenience and security. This article details the setup and configuration of SAML-based SSO with OPSCOM, explaining the necessary fields, metadata exchange, and user synchronization.  For more general information about SSO and OPSCOM refer to this wiki article.

        Prerequisites and Considerations

        Implementing SSO with OPSCOM, specifically using SAML (Security Assertion Markup Language), requires coordination between your organization's Identity Provider (IdP) and OPSCOM as the Service Provider (SP).

        • Paid Feature: SSO is a paid feature. You must have the setup fee and recurring fees negotiated before proceeding. Contact your Sales Representative or email support@ops-com.com to initiate this.
        • Login Sources: You must first follow the instructions to set up Login Sources within OPSCOM, as SSO will be configured as a specific login source.

        • User Management Strategy: Consider the following:
          • Will you have different Login Sources (e.g., Students/Staff use SSO, but Public Users do not)?
          • Will login sources vary by user type?
          • How do you want to initially get your users into OPSCOM (e.g., pre-import vs. on-the-fly creation)?
          • Do you want users to be created automatically upon their first SSO login?
          • Do you want to keep user information synchronized with your Identity Provider regularly, or will it be a one-time import?
          • What user profile data/fields do you want synchronized between your SSO system and OPSCOM?
          • Can you take advantage of the UserPush APIs for proactive user synchronization?

        Your OPSCOM Client Success team will be happy to discuss these options to ensure a smooth and successful setup.

        Once the prerequisites are addressed, the SAML setup involves configuring fields for both OPSCOM (as the Service Provider) and your external SAML system (as the Identity Provider).


        Configuring SAML Setup

        1. Hover over System Configuration, Users, and click Login Sources.
        2. Click the pencil icon to edit your login source you created already as mentioned above. You should already have configured the login source to the point of the Unique ID field.

        The settings below must be filled out correctly and saved before you will see the Metadata tab to continue.

        Service Provider Fields (Configured in OPSCOM)

        These fields define how OPSCOM will interact with your Identity Provider.

        • Unique IDRequired - This is a crucial part of the XML communication between OPSCOM and your SAML system. It is supplied by your SAML system and is the value OPSCOM uses to match against its internal UniqueID field to identify a user.
        • Entity ID for Service ProviderRequired - This value defines the unique SAML integration path within the URL in the metadata. If your OPSCOM system has more than one SAML integration, each Entity ID needs to be unique. The value you supply will appear in the integration path like this: https://client.OPSCOM.com/auth/saml2/ENTITY_ID_FIELD/acsOnly add the ENTITY_ID_FIELD not the whole URL.  
        • x509 Certificate: (Optional) This certificate is provided by your Identity Provider (IdP) and can be generated and added to the Service Provider (OPSCOM) for secure communication.
        • Private Key: (Optional)  
        Identity Provider Fields (Configured in OPSCOM, Values from Your SAML System):

        These fields capture information from your external SAML system (Identity Provider). You will find these values within your SAML system's metadata (e.g., often displayed under Federation → Show Metadata on your SAML installation page).

        • You will input values such as the Identity Provider's Entity ID, Single Sign-On URL (SSO URL), and x509 Certificate (which is often different from the one provided for the Service Provider).

        Once these settings have been completed and saved in OPSCOM, you will gain access to additional tabs: MetaData, Synchronization, and Translations.


        Using this Feature

        image.png
        Metadata Tab

        The Metadata tab in OPSCOM provides the XML code that you will need to provide to your Service Provider (OPSCOM, in the context of SAML communication from your IdP's perspective). This XML contains all the necessary information for your Identity Provider to communicate correctly with OPSCOM.

        image.png

        Sample XML File

        Sample XML File Explanation: When your external system (e.g., a SimpleSAMLPhp service set up as the identity provider) sends a response back to OPSCOM, it includes an saml:AttributeStatement tag containing several attributes. These attributes are required for OPSCOM to match to a user within its system. The most important field in this attribute section is the value used as the permanently unique identifier for a user. For example, if the XML response shows [uid] => Array ( [0] => 6ddf4027-3397-4e45-8628-0189f60fe91e ), then uid should be entered as the Unique ID Field in your Identity Provider Fields configuration within OPSCOM. If the unique ID is something else, such as SAMaccountName, then that should be used instead.

        ... DEV-2K8 - DEBUG: Saml2 Incoming User Array ( [uid] => Array ( [0] => 6ddf4027-3397-4e45-8628-0189f60fe91e ) [full name] => Array ( [0] => Sarah Knowles ) [email] => Array ( [0] => sknowles@tomahawk.ca ) ) []

        <?xml version="1.0"?>
                <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_aa1963115aa6490e728c7376f4c8849813bbb...">
                  ...
                  <saml:Assertion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" ID="_9efd79bf6425983ee9176f3d33a99d1a9176180...">
                    ...
                    <saml:Subject>
                      <saml:NameID SPNameQualifier="MinionOpsComStaff" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">_7a426e0be71f14c1f349db00d7d543b6f7dcb52baa</saml:NameID>
                      <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                        <saml:SubjectConfirmationData NotOnOrAfter="2021-08-24T16:00:41Z" Recipient="https://minion-3.dev.parkadmin.com/auth/saml2/MinionOpsComStaff/acs" InResponseTo="ONELOGIN_bb8a09203c888cf59af4c621a71cfa8f7559c016"/>
                      </saml:SubjectConfirmation>
                    </saml:Subject>
                    <saml:Conditions NotBefore="2021-08-24T15:55:11Z" NotOnOrAfter="2021-08-24T16:00:41Z">
                      <saml:AudienceRestriction>
                        <saml:Audience>MinionOpsComStaff</saml:Audience>
                      </saml:AudienceRestriction>
                    </saml:Conditions>
                    <saml:AuthnStatement AuthnInstant="2021-08-24T15:34:46Z" SessionNotOnOrAfter="2021-08-24T23:34:46Z" SessionIndex="_a7a68666092117d24aab8adecf1b0830622855b85...">
                      <saml:AuthnContext>
                        <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
                      </saml:AuthnContext>
                    </saml:AuthnStatement>
         
         
                    <saml:AttributeStatement>
                      <saml:Attribute Name="uid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
                        <saml:AttributeValue xsi:type="xs:string">6ddf4027-3397-4e45-8628-0189f60fe91e</saml:AttributeValue>
                      </saml:Attribute>
                      <saml:Attribute Name="full name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
                        <saml:AttributeValue xsi:type="xs:string">Sarah Knowles</saml:AttributeValue>
                      </saml:Attribute>
                      <saml:Attribute Name="email" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
                        <saml:AttributeValue xsi:type="xs:string">sknowles@tomahawk.ca</saml:AttributeValue>
                      </saml:Attribute>
                    </saml:AttributeStatement>
         
         
                  </saml:Assertion>
                </samlp:Response>
        Synchronization Tab

        The Synchronization tab allows you to configure how user information is managed between your SSO system and OPSCOM.

        • Auto Create/Update User: To begin, ensure you enable the Auto Create/Update User checkbox. This feature allows OPSCOM to automatically create new user profiles when they first log in via SAML, if they don't already exist in OPSCOM. It also enables the system to update existing user information.
        • User Attribute Mapping: On this tab, you will map the user attributes from your SSO system (your Identity Provider) to the corresponding fields in OPSCOM. For example, your SSO system might send "full name" and "email" attributes, which you would map to OPSCOM's firstName, lastName, and email fields.
        • Any field that is mapped and has a value from your SSO side should get updated to the value from SAML.

        After you have provided the information in each field, click Save Changes.

        Your users will then begin to be created or updated automatically upon their SSO login attempts. If any of the supplied fields are incorrect or don't match, the corresponding information will be blank in OPSCOM when the user logs in, or it will remain unchanged if the user already existed.

        image.png

        The exact sample values from our test system may differ from your actual SAML system attributes.

        Translations Tab

        The Translations tab allows you to customize the text displayed on your login button from the user side. You can create as many different translations as are available in your system (e.g., English and French). This ensures that the SSO login experience is localized for your users.

        image.png


        Best Practices & Considerations

        • Coordinate with IT/SAML Administrator: Successful SSO implementation requires close collaboration with your organization's IT department or the administrator of your SAML Identity Provider. They will provide the necessary metadata and attribute names.
        • Unique User Identifiers: Ensure the Unique Identifier chosen for matching users is truly unique and persistent within your SSO system. Incorrect or changing identifiers will lead to duplicate accounts or login failures.
        • Attribute Mapping Accuracy: Carefully map all desired user attributes from your Identity Provider to OPSCOM. Inaccurate mapping will result in missing or incorrect user data.
        • Test Thoroughly: After initial configuration, conduct thorough testing with various user types and scenarios to ensure seamless login, proper user creation/updates, and correct data synchronization.
        • User Experience: Clearly communicate the new SSO login process to your users. Provide instructions on how to access OPSCOM via SSO and address any potential questions.
        • Error Handling: Be prepared to troubleshoot potential issues. Common problems include incorrect Entity IDs, expired certificates, or mismatched attribute names. The SSO system logs can be invaluable for diagnosing such issues.
        System Configuration

        Troubleshooting - Email Server Communication Errors

        Communication errors in OPSCOM, often manifested as "Communication Error" messages to users, typically occur when essential email "From" or "Reply-to" addresses are not correctly configured in the system settings. This article helps OPSCOM administrators identify and resolve such errors, ensuring that system-generated emails (like password reset confirmations) are sent successfully.

        Identifying a Communication Error

        Communication errors are usually a symptom of missing or incorrect email configurations within the system settings.

        A common example of a communication error occurs when a user attempts to submit the Forgot Password form on the user-side login page. An error message similar to the following may be displayed:

        image.png

        This error indicates that the system is attempting to send an email but lacks a defined "From" or "Reply-to" address from which to send it.


        Fixing Communication Errors

        1. Click System Configuration, then System Settings. 
        2. On the General System Settings tab, locate the Reply-to Admin Email Address field.
        3. Enter a valid and active email address into this field. This address will serve as the system's "From" address for various automated communications.
        4. Save your changes.

        Once you have updated the email address, this communication issue should be resolved. You can test by re-attempting the action that previously triggered the error (e.g., submitting the Forgot Password form).


        Best Practices & Considerations

        System Configuration

        Alarms System Settings

        Setting up Alarms in OPSCOM

        There are 3 different alarms you can setup in OPSCOM.

        System Configuration

        Defining User Profile Settings

        User Profile Settings in OPSCOM enable administrators to customize the information collected from users on their profile forms. By controlling the visibility and requirement status of various fields, you can tailor the user experience to your organizational needs, ensure necessary data is captured, and streamline the registration process.

        User profile item settings are configured within the System Settings area of OPSCOM.

        1. Click System Configuration, then System Settings.
        2. On the Manage System Settings screen, click User Profile.

        Using this Feature

        On the User Profile settings page, items in the list can be set to one of three states, controlling their appearance and requirement on the user-side profile form:

        Note: The system will not allow the user to save their profile if any required information is missing.

        The state selected for each field is highlighted in black, with a checkmark indicating the active selection.

        2025-06-17_12-55-28.jpg

        View the corresponding profile fields here.

        Customizing Profile Sections
        Considerations for Text2ParkMe Users

        If your organization is using Text2ParkMe, a second tab will be available on this page. This tab allows you to configure additional details, including credit card information, that end-users can enter.

        Important: If any credit card information is entered by the user, it automatically switches all other credit card information fields to "required" for that transaction.


        Best Practices & Considerations

        System Configuration

        Account Creation Preferences

        OPSCOM allows administrators to configure user account creation preferences, choosing between immediate auto-login or requiring email verification upon registration. Understanding and setting this preference is crucial for managing your user base effectively, balancing user convenience with security and data integrity needs.

        Please refer to the Registering as a User article for the user-side documentation.

        Setup & Configuration

        Account creation preferences are configured within the User Profile settings under System Settings.

        1. Hover over System Configuration, then System Settings, and click the User Profile tab.
        2. Toggle the Auto Login After Register setting, which controls the account creation flow.

        Using this Feature

        The Auto Login After Register setting has two states, each with distinct implications for user experience and system security:

        Immediate Login (Auto Login After Register: ON)
        Email Verification (Auto Login After Register: OFF)

        Best Practices & Considerations

        System Configuration

        Configuring Multi-Factor Authentication on the User Portal

        Multi-Factor Authentication (MFA) adds a crucial second layer of security to user accounts in OPSCOM, significantly enhancing protection against unauthorized access. Currently, the primary method implemented is the use of one-time passwords (OTPs) sent via email. This article outlines how administrators can configure MFA at the system level and how users interact with this enhanced security feature on their portal.

        Setup & Configuration

        Implementing MFA involves administrator-side configuration within System Settings and customizing the associated email template.

        Admin Side Configuration

        One-time passwords will not be available on the user portal until enabled within System Settings.

        1. Hover over System Configuration and click System Settings.
        2. On the User Profile tab, click Enable Multi-Factor Authentication.

        If this setting is not available for you to change, please have your primary Admin contact support@ops-com.com to have it turned on.

        This is a ternary setting, meaning it has three different states, allowing for flexible control over MFA implementation:

        Email Template Configuration

        The content of the one-time password email sent to users is defined within a dedicated email template.

        1. Hover over System Configuration, Content & Designs and click Email Templates.
        2. Locate and edit the One-Time Password Email Template.

        Here, administrators can define the message and branding of the email. In addition to general user-specific shortcodes, this template includes specific shortcodes for OTP details:

        One-time passwords always expire after 15 minutes. This cannot be changed.

        jYLimage2.jpg


        Using this Feature

        User-Side MFA Management

        Users can enable and manage their one-time password settings from their security page (formerly the passwords page). Refer to this wiki article to see the steps involved.

        The state of the user's one-time password verification is stored in the local storage of their session data. If the local storage is cleared (e.g., clearing browser cache), they will have to enter another one-time password. The MFA verification does not persist across different web browsers or devices, meaning the user will have to enter a new one-time password if they try to log in using another browser or device.


        Best Practices & Considerations

        System Configuration

        Password and Security Settings

        The Security Settings in OPSCOM provide administrators with critical tools to enforce robust password policies and manage login security for all administrative accounts. Properly configuring these settings is essential for protecting sensitive system data, preventing unauthorized access, and complying with organizational security standards.

        Security settings are managed within the System Settings area of OPSCOM.

        1. Hover over System Configuration, and click System Settings.
        2. Click Security. The Manage System Settings window will open, displaying all available security configurations.

        Using this Feature

        The Security component within System Settings allows administrators to configure various aspects of password management and account lockout policies.

        Password Security Settings

        Note: Once Hash and Salt is enabled, it should not be turned off.

        Password Strength Requirements

        These settings allow you to enforce complexity rules for administrator passwords.

        Admin Account Lockout Settings

        These settings provide an additional layer of security by locking an administrator out of their account after repeated incorrect password attempts.


        Best Practices & Considerations

        System Configuration

        Uploading and Managing Files

        The Manage Files section in your OPSCOM Admin site provides a centralized repository for all files used across your OPSCOM instance, primarily images for your user and admin dashboards. This feature allows administrators to easily upload, view, organize, and manipulate these files, ensuring consistent branding and visual content throughout your system.

        Using this Feature

        The Manage Files page offers different ways to view and interact with your uploaded files.

        1. To access this, click System Configuration, then Manage Files.
        Viewing Files

        Files can be viewed in two primary modes:

        Managing Existing Files

        By right-clicking on an image or file, a contextual menu will appear, giving you several options:

        To crop an image (i.e., resize or adjust its visible dimensions to focus on a specific area), first View the image. Then, click the Cropping icon to begin selecting the desired area of the image.

        Adding Files to the Repository

        To add new files to this repository, click on the Upload tool. An Upload files interface will appear, prompting you to Select files, then Submit. The file will then be uploaded to your site's file storage.

        Note: Once an image is uploaded, it cannot be moved to a different folder. To maintain proper organization, ensure that you upload the image directly into the intended destination folder.

        Adding Images to a Page (Referencing Uploaded Files)

        To display an image you've uploaded onto an OPSCOM page (e.g., a page header or a custom content area):

        1. Click Insert in the text editor toolbar.
        2. Select Image from the dropdown menu.
        3. In the Insert/edit image window, click the search folder icon next to the source field to open the Filemanager.
        4. In the Filemanager, locate and double-click the image you wish to insert.
        5. The image will be added to the page at the location of your cursor.

        Best Practices & Considerations

        System Configuration

        Admin Dashboard Setup (Quick Start)

        The OPSCOM Dashboard is a fully customizable, widget-based analytics dashboard built into the admin portal. Each user can create multiple personal dashboards, arrange widgets freely on a drag-and-drop grid, and configure each widget individually to show exactly the data they need. Dashboards and widgets automatically refresh on a configurable schedule and are fully responsive down to mobile widths.

        Setup & Configuration

        Configuring dashboard layouts requires specific administrative permissions.

        Dashboard layouts and widget configuration are now fully documented in our feature guide. For detailed instructions on available widgets, customization, and layout options, see the Using the OPSCOM Dashboard & Widgets article.

        Content & Design

        Content & Design

        Email Headers and Footers

        Email Headers and Footers in OPSCOM allow administrators to define and manage reusable layout components for system-generated emails. By customizing these elements, you can ensure consistent branding, provide essential contact information, and apply uniform styling across all your automated email communications, creating a professional and cohesive user experience.

        Using this Feature

        Email Headers & Footers are managed through a dedicated section within System Configuration.

        1. Hover over System Configuration, then Contents & Design, and click Email Headers & Footers.

        The Email Template Layout List page displays the various sections of your email layouts (e.g., Header, Footer, Style). From here, you can select and edit the individual components that make up your email layouts.

        image.png

        Editing Email Layout Templates
        1. Click Toggle Templates. Locate the corresponding Section you wish to edit (e.g., "Header" "Footer" or "Style").
        2. Click the Edit button for that section.
        3. Within the editor, you can:
          • Add or modify text.
          • Insert images (e.g., your organization's logo).
          • Include inline styles directly within the HTML to control appearance (e.g., colors, fonts, spacing).
        4. Click Save Changes. You will see a message that your changes have been saved.
        5. You can also archive your template by clicking the Archive Template button in the Top Right.
        6. Click the Back button to edit other sections.

        Best Practices & Considerations

        Content & Design

        Email Templates

        Email Templates in OPSCOM allow administrators to customize the content and appearance of automated emails sent by the system. By leveraging available shortcodes and a smart editor, you can create dynamic, informative, and engaging messages for various notifications, ensuring clear and consistent communication with users.

        Using this Feature

        Default Email Templates

        To access and manage your default email templates:

        1. Hover over System Configuration, then Contents & Design, and click Email Templates.
        2. All the default email templates available in the system will be displayed. 

        The Email Templates interface allows you to edit existing templates, utilize dynamic shortcodes, and configure various fields to tailor your messages.

        Editing Default Email Templates
        1. Locate the template you wish to edit in the list.
        2. Click the Edit button next to it.
        3. You will be taken to a dedicated editor interface where you can make changes to the email template.

        image.png

        Creating Templates for Other Languages

        If you have other languages installed, you can click the Create button to create templates for these languages.

        Email Template Fields - What do they do?

        When editing an email template, you will configure the following fields:

        Using Shortcodes

        Each email template has a set of available shortcodes that you can use to dynamically insert specific information into your message.

        image.png

        Custom Email Templates

        Administrators can create and store frequently used emails that are not tied to specific system triggers. These templates can be used to automatically populate the email body when manually drafting a message to a user.

        Creating a Custom Template
        1. Click the Create button.

        2. Enter a descriptive Label. Custom templates are assigned an internal type code beginning with custom.

        3. Compose the message using the HTML Content and Text Content fields.

        4. Click Save.

        Using Custom Templates in Compose Email

        When drafting a manual email to a user via the Compose Email page:

        1. Use the Load Template section to view all available custom templates.

        2. Select a template to automatically populate the email contents.

        3. The Compose Email interface will highlight any required fields that must be completed before you can click the Send Email button.

        Tip: Unlike system-defined templates, custom templates include a Delete button, allowing you to remove them when they are no longer needed.


        Best Practices & Considerations

        Content & Design

        Translations

        Where are Translations Supported

        Currently, translations are only supported on the user side, however, they are managed and set up on the admin side, by admins that have the correct permissions set up to work with languages. 

        1. Translations that are in red, are translations on the adminside which are not yet supported. Since they are not supported you will see them come up in English only until the adminside is supported. 
        2. Translation that are in black, are translations that are on the userside that can currently be changed. 

        image.png

        Navigating to Translations

        To begin reviewing, editing or creating your translations/languages, you will need to navigate to System Config → Content & Designs → Translations.

        2024-10-04_14-34-02.png

        This will take you to the Installed Languages page where you can begin managing your current languages.

        image.png

        Adding New Languages 

        To begin adding your own languages simply click Add Language on the Installed Languages page which will bring up a new modal to add a label and locale.

        image.png

        When you are finished click Save Changes and your new language will be instantly added to the list. Once the language has been added, your users can begin using it on the user-side assuming you have the language enabled. 

        The locales are used when we want to create sub-languages, while the label is used to identify our translations throughout the site. 

        Adding Sub Languages and How do They Work

        Sub-languages are created by using a locale that currently exists with an underscore '_' followed by the sub-language that you want to set up.

        image.png

        For example, you can support multiple variations of the English language for your users. In the image below I have created a sub-language for American English using the locale en_us.

        image.png

        When you create a new sub-language, it will automatically use the translations that have been set up on the main language, which is the locale on the left side of the underscore, such as en_us. You will need to create the main language first before creating any sub-languages, otherwise the sub-language will always default to English instead of the main language you may have intended to use. 

        Installing Languages

        Installing a language will create a new language template with the translations we have set up for it as well as the Name and Locale we have created for you. You can then click Edit Translations to adjust the preset translations to your liking. If there is not a language already in the system that can be installed you will need to add a new language and setup the translations yourself. Currently, we only support the ability to install French and English.

        image.png

        Disabling or Enabling Translations 

        We can choose to disable particular languages that we don't want to be selectable from the user side. To do this we can toggle the visibly of our languages under the Enabled column on the Installed Languages Page.

        image.png

        Once a language is toggled as Disabled it can no longer be selected by the users of your site as seen in the example image below.

        image.png

        Searching Language Translations 

        You can search for all translations that relate to a specific component in the system using the search bar at the top right of the Edit Translations page. For example, we can search for permits to find all permit related translations.

        image.png

        We can also go onto the user side and use the Token language, which will show all of the Names found on the Edit Translations page, under the Name column, (See the image above) to find where that translation exists so it can be changed. This can't be seen by logging is as the user from the user side but requires an admin to go to the profile of a user and click the Login as User button from the admin side. This is to ensure that your regular users don't see the token language option.

        image.png

        The token language finds the tokens used so you can better search where the translations are being used on the user side.

        Edit Translations

        To begin editing language translations you have to make your changes and then click away from the input field. Once you do this you will see that the translation gets highlighted in yellow indicating that a change has been made. The number of affected records will also display at the bottom of the translations page.

        image.png

        When you are finished making your changes click Save Changes for the update to take effect. 

        Delete Languages

        To delete languages, you can click the delete button next to the language you want to remove. Keep in mind that if you remove the base English and French language it can be re-installed. However, if you delete a language that we do not provide you, then this data will be lost and you will need to contact support for assistance with recovering these translations.

        image.png

        Keep in mind that deleting a language will not delete any of the sub-languages you may have created. For example, if I were to delete English, the English US language would still remain with all of its translations.

        Creating Templates and Messaging for New Languages

        It's important to note that when you create a new language it will not rely on the default templates and system messaging that you have setup for your previous languages. For example, if I use the new French American language I created, and go onto the user side where languages are supported, then I will see a blank template as well as blank messages.

        image.png

        Adding Templates

        To add a new template for your languages that you create you will need to go into Templates & Design followed by Toggle Templates for the templates that are currently being used. From there you will have the option to click the Create button to add the new template. If you just want your new language to use the same template, from a language that is already in the system, just go into Edit and copy the text over into your new language, after clicking the Create button.

        image.png

        Adding System Messages

        System messaging will work a bit differently than templates as you will need to go into each individual message and click the Edit button next to that message.

        image.png

        From there you should be able to select your new language.

        image.png

        If you want multiple messages to display for all your languages you will need to create a new system message and type out the translations for that language template. 

        Changing Terminology Using the Translator

        There is another use for the translation tool that may not be obvious at first. Since the translator is essentially a list of code terms and a corresponding list of what is actually displayed on any page not only can you edit the various languages but for each language you can also edit the display term to fit a local "version" of the term. A perfect example of this is in some areas one might refer to receiving a "ticket" as receiving a "citation". It is entirely possible to replace any spot in the interface where the term ticket is used with the term citation.

        To do so go into the language editor and search for the term you wish to localize. In our example simply enter ticket in the search bar and hit return. A list of all translatable instances of the word ticket will appear. Click the box where the term is editable and type in your preferred term. In this case we are changing Manage Ticket Categories to Manage Citation Categories. Once you save the changes you have made the displayed text associated with Manage Ticket Categories will display as Manage Citation Categories throughout the system. You may edit the remaining instances of the word Ticket that are in the list before saving to change the term in bulk for all entries listed.

        image.png

        Content & Design

        User Portal Branding and Setup

        OPSCOM administrators can define global default branding for the User Portal. By configuring the Default Site Logo and Default Site Header, you can ensure consistent branding and visual presentation across your OPSCOM User environment.

        Setup & Configuration

        Default images are configured within the Global component of the System Settings.

        1. Hover over System Configuration, and click System Settings.
        2. Click the Global settings tab. Within the Global Setting section, you will find two key areas where you can configure images:
          • Default Site Logo
          • Default Site Header
        Setting the Default Logo
        1. Next to the Default Site Logo setting, click on Select Image.
        2. You will be taken to the Manage Files section (your file repository).
        3. Browse your computer or search for the image you wish to use as your default site logo.
        4. Select the desired image.

        Follow the Uploading and Managing Files guide for best practices regarding file management and organization.

        Setting the Default Header Image
        1. Similarly, next to the Default Site Header setting, click on Select Image.
        2. Follow steps 3-4 above.

        Once the images are selected, their file names or previews will appear in the respective configuration settings fields. Remember to Save Settings to apply these selections.

        Observing the Changes

        These default images serve as fallbacks and will appear in various places throughout the OPSCOM system if no specific logo or header is set in other areas (such as the Contents and Designs section).

        Common places where these default images are utilized include:


        Best Practices & Considerations

        Content & Design

        Pages and Content Blocks

        Accessing System Messaging

        To access and manage your System Messaging navigate to the gears icon  and click on Content & Designs -> Pages and Content Blocks.

        2024-10-04_14-34-02.png

        Creating Pages

        We also provide a video to visually demonstrate how to use system messaging https://drive.google.com/file/d/1DU3qorWnAp_2N9mcNGFYTttNHMeRpXsQ/view

        Pages display the visual content found throughout your application. You can edit the contents of your page or post a System Message by using the Disclaimer Shortcode on the Page you want it to show up on. Shortcodes also make it convenient to add interactive content to your pages. For more information on Shortcodes scroll to the bottom of this page. 

        • To create a Page click the Create Page/Message button at the top right of the Manage System Messaging screen. It doesn't matter what tab you're on when you do this as you will specify the Page Type when you go to create the page.    

        image.png

        • Once you click this button OPSCOM will take you to a different section where you can set the properties and content of the page. Below is a detailed description of the options available to you when creating new Pages
        Page Attributes Short Description 
        Title The Title of the page you wish to create, which will be the name displayed on the user navigation bar. 
        Path

        The path after the domain. i.e.

        login → This is the home page 

        Changing this to lockers/area/1 will display login/lockers/area/1 as the URL for that page. 

        Visibility You can toggle the visibility of your pages which will make it so your users can't see the page anymore, but you can still edit it.
        Language Use this to select between two language options for a specific page. Tomahawk currently supports English and French
        Layout You can select the layout of your page here. Usually, you will have the Default Layout selected. 
        Content Your content will be the text on the page you are currently editing. You can also use Shortcodes here to display a body of material or feature. For example, a user login form could be displayed on your homepage. 

        Important: Make sure you select Page under the drop-down menu next to Page Type and not Message. Below we will go into detail on how to create a Page field by field. The images below give you a good visual example of what field is being explained, if there is a certain field you are unsure about you can easily find the picture and read from there.

        • Start by giving your page a Title and specify how you would like the URL at the top of your page to be displayed. 

           What is a URL?...

        image.png

        • Adjust the visibility of your page by toggling the Visible button on/off. The Page will still be editable in the System Messaging section but it will not be visible to your users who are on your Page or System Message
        Toggle On(Visible Page) Toggled Off(Invisible Page)

        • Toggling the Page as invisible will show it under the Messages tab like seen in the image below to signify it cannot be seen by your users. 

        image.png

        • Select the default Language and Layout of your page. If you are not sure which template to use you can leave it as the Default Layout. 

        image.png

        • Provide the content of your page in the editor found under the page settings. This content will be the main content of your Pages; you can use Templates & Design to edit the other sections of your pages such as the Header-Content and Footer-Content. 
        • OPSCOM uses Shortcodes to display a section of interactive or static content like a user login, permits, etc. 

        image.png

        Content Placement

        Depending on where you place your content it can appear differently. OPSCOM's smart editor reads content top to bottom, left to right. Meaning that placing a user login Shortcode before your content will look dramatically different than if you placed the Shortcode last. You can see a few visual examples of how this works below. 

        For Example: Shortcodes Before Content

        We are going to use the Lot Information Shortcode to display our available lots before our text content. 

        image.png

        As you can see this displays our lot information before our content. 

        image.png

        For Example: Shortcodes After Content 

        Once again we are going to use the Lot Information Shortcode to display our available lots after our Content.

        image.png

        As you can see this placed the Shortcode after the lot information

        image.png

        Editing Pages 

        Keep in mind that the URL / System Location next to the page is the area in OPSCOM that you are updating. Therefore, if you wished to update the permit screen, you want to edit the page with a System Location of /permits.

        You can edit your pages attributes such as the Title, Path, Visibility, Language, Layout, and Content after it has already been created.

        1. To Edit a page, simply click on the Edit button next to the page Title you want to edit. As seen in the image below we are going to select and edit the Appeals Message page. 

          image.png


        2. You can now make any changes to the Pages content or attributes that you like.
          See Creating Pages near the top of the page if you are not sure what a specific field does. From here we can edit the format of the text such as the colour, background color, etc.. 

          image.png


        3. If you have not made any changes to the page you are Editing, you may go back to the Page List by clicking Return to Page List at the top of the screen. Clicking this button will discard all changes recently made. 

          image.png

        4. Once you have finished editing the page, click Save Messaging for your changes to take effect. 

          image.png


        Creating System Messages

        Important: Users will be brought back to the Users page if users do not agree with a System Message. Meaning, we use System Messaging as a convenient way to offer agreements and disclaimers before users make purchases of permits or lockers. 

        System Messages and How they work with Pages 

        How do System Messages work?

        System Messages and Pages work together using Disclaimer Shortcode's. When you create a System Message, you give that message a unique IdentifierSystem message identifiers may be used in junction with Disclaimer Shortcodes to display your System Messages onto Pages. The idea may be daunting at first, but once you get a better understanding of how these features work together, it will make more sense. 

        Visual Example

        image.png

        1. The System Message gets created. 
        2. The System Message is given an Identifier to be used with a specific System Message so we may access it on a Page.
        3. We add the Identifier to the Disclaimer Shortcode on the Page that we want to display the message on. 
          1. Shortcode Example- [disclaimer name=lockersDisclaimer dismiss=never]
          2. Shortcode Example- [disclaimer name=vehicleDisclaimer dismiss=session show=".add-vehicle"]
        4. Shortcodes may also be used on System Messages to display useful content such as a detailed description of the current vehicles registered to the user. See below for a list of supported Shortcodes.  

        System Messages provide you with a convenient way to add alert messages to your pages that pop-up when a user clicks the page. You may create System Messages to be displayed on specific Pages using Disclaimer Shortcode's.

        Message Attributes Description
        Title The title that will be displayed across the top of the System Message when users navigate to that page. 
        Identifier The identifier is used to know which page you want to display the message by using Shortcodes
        Visibility This section toggles the visibility of your page which will make it so your users may not see the page, but you can still edit it.
        Language Select between two language options for a specific page. Tomahawk current supports English and French
        Content Content is what will display on the actual page. You may use Shortcodes here to view predefined static or interactive content. For example, a user login form could be displayed on your homepage. 
        1. To create a System Message merely click the Create Page / Message button on the top right of the Manage System Messaging screen.

          image.png


        2. Make sure to select the Page Type from the drop-down menu and change this to Message. It is essential that you do not select Page when creating a System Message.

          image.png


          image.png


        3. Create a Title for the message.
        4. Give the message a unique Identifier so it can be accessed on your Pages using Disclaimer Shortcodes. Shortcodes are codes used to link our Pages and System Messages together. 
        5. Once an Identifier is created, It is essential to note that you may not use it anymore or you will get an error message.
        6. You may modify the visibility of your System Message by toggling the Visible button on or off. 

          Toggle On(Visible) Toggled Off(Invisible)

          image.png

          image.png

        7. Toggling a System Message as invisible ensures your users won't see it. Although, you can still edit and view the System Message on the admin side, but it will be displayed as seen in the image below. 

          image.png


        8. Select which Language you would like your content to be in. OPSCOM currently supports two languages which are English and French.
        9. Edit the contents of your System Message in the editor found below the messages fields. This is the content that your users will see and will allow you to edit and format the way the text looks.
          Once finished, click Save Messaging. 

        Warning: Clicking Return to Template List before Save Messaging will discard all the changes you just made, meaning that the System Message will not get created or your changes will not occur. 

        image.png

        Editing System Messages

        You can manage your System Messages Title, Identifier, Visibility, Language, as well as modify the content to include text, images, or Shortcodes.

        1. To Edit your System Messages click the Messages tab under the Manage System Messaging page.
        2.  Select the Edit button next to the System Message you wish to edit. For this example, we will be editing the Admin Dashboard. 

          image.png


        3. You will now be able to adjust the message your users will see using the System Messaging editor. Below are the fields in which you can use to edit the System Message

          Message Attributes Description
          Title The title that will be displayed across the top of the System Message when users navigate to that page. 
          Identifier The identifier is used to know which page you want to display the message by using Shortcodes
          Visibility This section toggles the visibility of your page which will make it so your users may not see the page, but you can still edit it.
          Language Select between two language options for a specific page. OPSCOM currently supports English and French
          Content Content is what will display on the actual page. You may use Shortcodes here to view predefined static or interactive content. For example, a user login form could be displayed on your homepage. 

          image.png


        4. You may use the Title field to change the Title of the System Message
        5. You may use the Identifier field to change text used to display a System Message to a Page, but this will require you to modify all Disclaimer Shortcodes using the old unique Identifier for the message you are replacing.  
        6. You may click Save Messaging when you are finished making your changes. 

        image.png

        Add System Messages to Pages using Shortcodes

        Now that you know how to create your Pages and System Messages you can bring them together using a Disclaimer Shortcode. A Shortcode is a small body of code surrounded by [ ] used to display complex templates or features. Shortcodes limit the technicality of our system by offering a convenient way to add interactive content without having to know how to script or code. 

        Please review the Shortcodes for Use on the User Portal for a detailed description of how shortcodes work. You can also find a list of Shortcodes currently available to you by going to the OPSCOM Shortcode Documentation. 

        Content & Design

        Templates and Design

        Overview

        The User Portal system allows your clients to register, add vehicles, purchase permits and pay violations. It is an important extension of your business, and it should reflect your corporate branding.

        Pages and Templates

        The OPSCOM user Page will store the functionality and content of your main page, while the Templates will be used to change the functionality of your pages as well as the content around the Page. 

        Where to Find Templates and Design

        Click System Configuration, Templates & Design to access these features. 

        image.png

        All Default Templates 

        If at any point you feel that you have adjusted the Default <scripts> and <styles> to the point of breaking your site, or you are simply unsure what your changes have done, you can refer to these templates to restore your pages functionality and style.

        Default Script Template 
         
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33
        34
        <script>
            $(function(){
                $.fn.shuffle = function() {
         
                    var allElems = this.get(),
                        getRandom = function(max) {
                            return Math.floor(Math.random() * max);
                        },
                        shuffled = $.map(allElems, function(){
                            var random = getRandom(allElems.length),
                                randEl = $(allElems[random]).clone(true)[0];
                            allElems.splice(random, 1);
                            return randEl;
                        });
         
                    this.each(function(i){
                        $(this).replaceWith($(shuffled[i]));
                    });
         
                    return $(shuffled);
         
                };
                $('#slideshow-header div').shuffle();
                $("#slideshow-header > div:gt(0)").hide();
         
                setInterval(function() {
                    $('#slideshow-header > div:first')
                        .fadeOut(1000)
                        .next()
                        .fadeIn(1000)
                        .end()
                        .appendTo('#slideshow-header');
                },  10000);
            });
        </script>
        Default Style Template 
         
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33
        34
        35
        36
        37
        38
        39
        40
        41
        42
        <style>
          body {
            backgroundblack url(/uploads/FILES/OC_TOMA/parking-deck.jpg) center center;
            background-size: cover;
            background-attachmentfixed;
            color#FFF;
          }
          .card, .modal, .list-group-item {
            color#333;
          }
          .slideshow-header {
            position:relative;
          }
          .slideshow-header .slides {
            z-index0;
            position:absolute;
            top:0px;
            left:0px;
            right:0px;
            bottom:0px;
            display:flex;
            align-items: center;
            justify-contentcenter;
          }
          .slideshow-header .overlay {
            z-index1;
            position:relative;
          }
          #slideshow-header {
            overflowhidden;
            opacity:0.8;
            box-shadow: 0 0 20px rgba(0000.4);
          }
         
          #slideshow-header > div {
            width:100%;
            positionabsolute;
          }
         
          #slideshow-header div img {
            width100%;
          }
        </style>
        Default Header Template 
         
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        <div class="text-center slideshow-header">
          <div class="slides" id="slideshow-header">
          </div>
          <div class="overlay">
            <img alt="" class="img-fluid" src="/MEDIA/demo_extras/TomahawkUniversity_logo.png" style="display:inline; width: 450px; margin-top: 80px; margin-bottom:80px;"/>
          </div>
        </div>
        [user_menu]


        Understanding Templates & Design 

        Templates & Designs are the visual functionality of your web page structured around your Page content. OPSCOM provides you with default templates which allow you to get started easily without having to know any code. 

        image.png

        image.png

        1. Clicking on Toggle Templates will display all of the sections attached to that template. Templates can be created in English and French. 

        2. The contents of our pages are split into four separate sections. Header(1), Content Header(2), Content Footer(4), and Footer(5). See Template Layout right below this guide to get a better understanding of the OPSCOM layout. 

        3. To edit a template Section, simply click Edit next to the section name. 

        Template Layout

        Below is a visual example of how your Pages are split into Sections using Templates. All of the Content (3) of our Pages are added through the System Messages under Pages

        image.png

        1. Header - The header of your page, where you can find your header image and user navigation. 

        2. Content_Header - Another header section for you to place content into, such as alerts or user information. Everything placed here will appear before the Content and Content Footer.

        3. Content - The content of your pages. Content may not be added from Templates & Design and will require you to navigate to System Messaging

        4. Content_Footer - The footer of your Content. Everything placed here will appear after the Content Header and Content. Again, you can use this to display alerts, messages, or additional content to your Template. 

        5. Footer - The footer of your page is where you can find useful information. You can use this area to advertise important information your users might need while using your system. 

        Page Layouts and Templates 

        Creating Layouts

        To create a layout simply click the Create Layout button found at the top right of the Layouts page. 

        image.png

        You will be presented with the Add Layout system message. 

        image.png

        1. Provide the name of your layout. In this example, we are going to create our own Summer Layout to be used, instead of the default layout.

        2. Click Save Changes when you are happy with the name of your layout. Once the Layout has been created, you can see it under the Layouts list. 

        3. If you wish to cancel the creation of your layout simply click Close

        4. You can see that our Summer Layout was added to the end of our Layouts List with no sections yet. 

        5. You can choose whether or not your template is the Default template at any time by clicking the Non-Default drop-down and selecting Default.
        6. Anytime you add sections to your Templates it will display how many are attached next to Toggle Templates. As you can see, we don't have any Sections created yet so there are no numbers to be displayed, otherwise, clicking on Toggle Templates would show you a list of all the templates currently attached to that Layout.


        image.png

              7. You can edit the layout name by clicking on the Edit button next to archive.

              8. If you would like to archive a layout that you are no longer using, you can click the Archive button next to edit. 

        Creating Templates

        Now that you have a better understanding of how Templates work with Layouts we can start creating our own. 

        image.png

        1. Click on Toggle Templates. 

        2. Clicking this will display the available Templates attached to the Summer Layout

        3. You can now Create a variety of templates for your page, including bilingual support. 

        4. If you are non-technical, it is advised not to change the code for Scripts, Styles, Header, and Footer Templates. You can use the default Style, Script, Header, and Footer Templates from All Default Templates. These can still be edited according to your company and their style guides. See Edit the Page Style and Edit the Page Behaviour below for more information. 
           

        Edit the Page Style (CSS) 

        Important

        This guide is used if you intend to adjust the Templates provided to you by OPSCOM. If you choose to rewrite your own Templates you can choose to ignore this.

          

        Content
        /* Style properties of our page body, this affects the entire page. */
        body {
            backgroundblack url(/uploads/FILES/OC_TOMA/parking-deck.jpg) center center;
            background-size: cover;
            background-attachmentfixed;
            color#FFF;
        }
         
        /* This changes the color property of --Find where these classes are used 
        .card, .modal, .list-group-item {
            color#333;
        }
        Slide Show
        /* Below are all of the styles for our header slideshow at the top of each page. */
        /*--------------WORD BANK---------------
         * ELEMENTS: Elements are the tags with '<>' around them such as <div> and <img> found in the default header and footer template.
         * We access them here by giving them a Class name or ID.                                          
         * PROPERTIES: Properties are used to define certain styles to a class or ID.
         * CLASS: Generally used to assign a style to a group of HTML elements but can be used on single elements as well.
         * They are assigned within HTML elements like this: <div class="MyClass"></div> where MyClass would be your class name.
         * ID's: Generally used to assign styles to a single element but can be used on multiple elements as well.
         *
         *--------------CLASSES-----------------
         *
         * To learn more about the CSS Position Property see: https://www.w3schools.com/cssref/pr_class_position.asp
         * For more information on CSS Syntax and Selectors see: https://www.w3schools.com/css/css_syntax.asp
         * It is not recommended to adjust with the position of elements unless you are sure about the changes being made. This can dramatically change how content is positioned. 
         */
         
        /* Class Names and Elements
         * [.slideshow-header]: Container that contains our slides and overlay.
         *
         * Properties
         * @position: Adjust the position of the slideshow-header. For more information see: https://www.w3schools.com/css/css_positioning.asp
         */ 
        .slideshow-header {
            position:relative;
        }
         
        /* Class Names and Elements 
         * [.slideshow-header]: Container that contains our slides and overlay.
         * [.slides]: Controls the style properties of the individual slides.
         
         * Properties  
         * @z-index: Adjust the stack placement of the [.slideshow-header] and [.slides] along the Z axis.
         * @position: Define the position of the page. 
         * @top:Change in the position from the top of an element.
         * @left: Change in the position from the left of an element.
         * @right: Change in the position from the right of an element.
         * @bottom: Change in the position from the bottom of an element.
         * @display: Adjusts how the content is displayed on the page. See: https://developer.mozilla.org/en-US/docs/Web/CSS/display and https://www.w3schools.com/css/css_display_visibility.asp
         * @align-items: Aligns the child elements of this PARENT element to be centered. For a visual example see: https://developer.mozilla.org/en-US/docs/Web/CSS/align-items
         * @justify-content: Defines how the space disturbed around the child elements. For a visual example see: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content
         *
         * These are the style properties and values of the slideshow header and its individual slides.
         */
        .slideshow-header .slides {
            z-index0;
            position:absolute;
            top:0px;
            left:0px;
            right:0px;
            bottom:0px;
            display:flex;
            align-items: center;
            justify-contentcenter;
        }
         
        /* Class Names and Elements
         * [.slideshow-header]: A container that contains our slides and overlay.
         * [.overlay]:
         *
         * Properties
         * @z-index: Used to layer elements. Elements with a higher z-index number will appear before elements that are lower.
         * @position: Set the position property for the element. We recommend you do not adjust this property unless you have knowledge on how the changes will affect your page.
         *
         * These are the styles for the overlay, as well as additional properties for the slideshow-header.
         */ 
        .slideshow-header .overlay {
            z-index1;
            position:relative;
        }
         
        /*--------------ID'S---------------*/
        /* ID Names and Elements
         * [#slideshow-header] is the container used to contain the images you have chosen for your header
         *
         * Properties
         * @overflow:
         * @opacity:
         * @box-shadow: Create a box shadow for this element.
         * EX: box-shadow: a, b, c, d(e, f, g, h); 
         */
        #slideshow-header {
        }
          
        /* ID Names and Elements
         * [#slideshow-header] is the container used to contain the images you have chosen for your header
         *
         * Properties
         * @width: 100% width will take of 100% of that element.
         * @position:
         */
        #slideshow-header > div {
            width:100%;
            positionabsolute;
        }
          
        /* ID Names and Elements
         * [#slideshow-header]: is the container used to contain the images you have chosen for your header.
         * [div]: Refers to our HTML elements.  
         * [img]: Refers to our images in the slideshow. 
         
         * Properties
         * @width: Defines the width of the images, divs and slideshow-header. A value of 100% will display the image across the entire page. 
         */
        #slideshow-header div img {
            width100%;
        }


        Edit the Page Behavior (Scripts) 

        Disclaimer

        Please review the list of supported scripting languages below. If a Javascript vendor is unverified it may break the functionality of your site.

         Verified Script Vendors
        1. Bootstrap 
        2. jQuery - To fully customize the slideshow script that displays the slideshow found at the top of each page, you will need to know jQuery. You could choose to rewrite the slideshow script in whichever Javascript vendor that is verified. 

        API Integration

        Additionally, you can use our API to integrate with pay stations and other devices that will allow you to grab useful information from your users. 

        Content & Design

        Form 11 Shortcodes

        Information

        When issuing a Form 11, there are a number of shortcodes that can be placed in the template to auto-fill values relating to the violation.

        The base short code is formatted like:

        The blank value must be filled with a value to pull from the violation info.

        For each nested value in the data packet, the packet name must be added as part of the variable name, each part separated by a period, with the variable to be output by the shortcode as the final part of the variable.

        The packet itself is called by 'violation', and the name must be placed at the start of any value call.

        Violation Packet

        The violation info packet is formatted like this example.

        The values on the left are the variable names, the values on the right are the example values returned by this packet.

        {
            "ViolationID": 237,
            "SemPermitID": null,
            "Ticket": "TT-19026",
            "VehicleID": 5,
            "Spoiled": 0,
            "TicketType": 1,
            "Issued": "2024-07-17 16:11:00",
            "convNotice": null,
            "Due": "2024-07-27 16:11:00",
            "ViolationTypeID": -1,
            "Fine": "50.0000",
            "AdjustedFine": "20.0000",
            "Towing": "0.0000",
            "taxAmount": "0.0000",
            "Writer": 7,
            "LocationID": 10,
            "Comment": null,
            "TicketAppeal": null,
            "appealType": 0,
            "appealFormat": null,
            "AccessAdminID": 50,
            "ActionedPer": null,
            "Created": "2024-07-17 20:12:08",
            "AppealUserID": 0,
            "AppealProcessDate": null,
            "AppealAdminID": 0,
            "AppealComment": null,
            "AppealAdminComment": null,
            "AutoNotice": 0,
            "ProcessedByCollection": null,
            "SentToCollections": null,
            "PrivateComments": "",
            "DriveAway": 0,
            "UUID": null,
            "VioNotice": null,
            "latitude": null,
            "longitude": null,
            "Warning": null,
            "userid": null,
            "incidentID": null,
            "failToIdentify": null,
            "pin": "YL",
            "duplicate": null,
            "AdjustmentReason": null,
            "notices_count": 1,
          
            "user_info": {
                    "UserID": 5,
                    "studentNo": null,
                    "employNo": "00800147",
                    "username": "mashbury",
                    "firstName": "Michael",
                    "preferredname": null,
                    "lastName": "Ashbury",
                    "street": "688 Zaproxy Ridge",
                    "city": "East Romaineburgh",
                    "prov": 9,
                    "postal": "K2G5B1",
                    "email": "mash-bury@tomahawk.ca",
                    "display_name": "Michael Ashbury",
                    "account_no": "00800147",
                    "prov_name": "Ontario",
            },
          
            "writer": {
                    "AdminAccessID": 7,
                    "Username": "admin",
                    "DisplayName": "Administrator"
            },
          
            "vehicle": {
                    "VehicleID": 5,
                    "Active": 1,
                    "Plate": "MASH",
                    "Year": 1998,
                    "TotalVio": 12,
                    "TotalUnpaid": 2,
                    "TotalWarning": 0,
                    "vehicleAlert": true,
                    "vin": "JNAMA43H9XGE50339",
                    "electric_vehicle": false,
                  
                    "province": {
                            "ProvName": "West Virginia",
                            "ProvCode": "WV",
                    },
        
                    "make": {
                          "MakeName": "Toyota"
                    },
                    
                    "colour": {
                          "ColourName": "Black"
                    },
                    
                    "plate_type": {
                          "TypeName": " Passenger"
                    }
                
                    "vehicle_type": {
                          "TypeName": " Van"
                    },
              
            },
          
            "location": {
                    "LocationID": 10,
                    "LocationName": "Hospital & Administration Building",
            },
          
            "details": {
                    "ViolationsDetailID": 359,
                    "ViolationID": 237,
                    "Ticket": "TT-19026",
                    "ViolationTypeID": 16,
                    "LocationID": 10,
                    "offenceFine": 50,
                    "discountFlag": 1,
                    "discountAmount": 20,
                    "discountHours": 240,
                  
                    "type": {
                            "ViolationTypeID": 16,
                            "ViolationDescr": "No Parking Snow Route - Mandatory Towing",
                            "DefaultCost": 50,
                            "discountFlag": true,
                            "discountAmount": 20,
                            "discountHours": 240,
                    }
            }
        }

        Examples

        An example shortcode is provided for each section. To return a specific value in the same section, replace the provided variable name with the sibling value wanted for output.

        Example Shortcode
        Description

        [values show=violation.Ticket]

        Returns the violation ticket number.
        [values show=violation.user_info.username] Returns the username of the user the violation belongs to.
        [values show=violation.writer.DisplayName] Returns the display name of the admin who assigned the violation to the user.
        [values show=violation.vehicle.Plate] Returns the plate of the vehicle the violation was assigned to, if applicable.
        [values show=violation.vehicle.province.ProvName] Returns the province or state of the vehicle plate.
        [values show=violation.vehicle.colour.ColourName] Returns the colour of the vehicle.
        [values show=violation.vehicle.plate_type.TypeName] Returns the plate type of the vehicle.
        [values show=violation.vehicle.vehicle_type.TypeName] Returns the type of the vehicle.
        [values show=violation.vehicle.make.MakeName] Returns the make of the vehicle.
        [values show=violation.location.LocationName] Returns the name of the location the infraction happened.
        [values show=violation.details.0.Ticket] Returns the violation ticket number. Alternate value location.
        [values show=violation.details.0.type.ViolationDescr] Returns the violation type description.
        Content & Design

        User Information Shortcodes

        Shortcodes

        Shortcodes used to display user information.

        Keep in mind that the shortcode descriptions are also on the email template page for lost passwords. 

        Shortcode
        Description
         [user show="firstname"] The first name of the user account receiving the email or messaging. 
         [user show="lastname"] The last name of the user account receiving the email or messaging. 
         [user show="email"] The email address of the user account receiving the email or messaging. 
         [user show="username"] The username of the user account receiving the email or messaging. 
         [user show="salutation"] The salutation of the user account receiving the email or messaging. 











        User Configuration

        User Configuration

        User Types

        User Types in OPSCOM categorize your system users (e.g., Student, Staff, Public) and control various aspects of their interaction with the system, including access to specific lots, available payment options, and the fields visible on their profile. Configuring user types allows administrators to tailor the OPSCOM experience to different user groups, ensuring appropriate permissions and functionalities.

        Setup & Configuration

        User Type configurations are managed through the User Type Administration tool.

        1. Hover over System Configuration, then Users, and click Types.

        This will open the User Type Administration page, displaying a list of your existing User Types.

        Creating a New User Type
        1. Click the Create New User Type button.
        2. Enter the Type Name for your new user type (e.g., Public Parker).
        3. Set the Grouping for this user type. This is crucial as it links to OPSCOM's internal master user categories, which govern access to other system items and the appearance of profile forms. The four main internal categories are:
          • Staff
          • Student
          • Public
          • Athletics

        New user types must be assigned to one of these categories. These are hardcoded and cannot be changed.

        1. You can toggle Visible to Users to make this user type selectable by end-users during registration.
        2. Set the number of Extra Active Vehicles that users of this type can have. By default, users can have one active vehicle; this field specifies how many additional active vehicles are allowed.
        3. Choose the Allowed Payment Types for this User Type by enabling the checkbox next to the Payment Type.  Refer to this wiki article for more information.
        4. Click Create User Type.

        2025-06-17_15-08-20.jpg

        Once saved, your new user type (e.g., Public Parker) will appear in the list.

        You can also create user types to allow you to categorize your archived users. Refer to this wiki article to learn about managing archived users by user type.


        Using this Feature

        Applying a User Type to a User

        A User Type can be assigned to a user when their account is created or changed at any time later.

        1. Hover over User Management and click User Search.
        2. Search for the user you want to edit.
        3. Edit the user profile and click the User Type picklist.
        4. Choose the desired User Type (e.g., Public Parker).
        5. Click Submit Profile Information, review the submission, and click the Information Correct button.
        Searching by User Type

        User Types can be used as criteria in various search tools within OPSCOM. You can use the User Search tool or you can click the # of Users button beside the lot to automatically perform a search for this user type.

        Searching for Payment Types Assigned by User Type

        You can click the # of Payment Types button to immediately see a list of all payment types associated to each user type.  

        Configuring Access to Lots with User Types

        User Types play a critical role in controlling access to parking lots.

        1. Hover over Parking Management, then Lot Administration, and click Pricing & Lot Admin.
        2. Click on the Lot Name of the lot you wish to configure.
        3. On the General Tab, under the Lot Access section, ensure User Type Lot is selected.
        4. Select the specific user types you wish to allow access to this lot in the Lot Types picklist. Ctrl + Click to select multiple types.  
          • Scenario Example: For a particular lot, you might allow students and public parkers to purchase permits but restrict access for Staff/Faculty users.
        5. When viewing the list of lots in Lot Administration, you can click Show/Hide Lot User Types to quickly see which user types a lot is configured for.
        User-Side Lot Visibility

        When a user logs into the system (e.g., as "Joseph Callaghan" who is a student), and attempts to purchase a permit:

        • The system will only display lots that are configured for that user's specific User Type.
        • In this example, the user might only see "Standard Permit Lot" and "Text2Park" if those are the only lots accessible to their user type.
        Deleting or Archiving a User Type
        • A user type can only be deleted or archived if no users are currently assigned to it. You must reassign all users from a user type before it can be removed. Once you have done so, edit the user and click the Delete User Type button.

        Best Practices & Considerations

        • Align with Organizational Structure: Create user types that directly reflect the categories of individuals interacting with your system (e.g., Faculty, Undergraduate, Graduate, Visitor).
        • Control Vehicle Limits: Use the Extra Active Vehicles setting to manage the number of vehicles associated with users, which can impact parking availability and system load.
        • Granular Access Control: Leverage user types in Lot Administration to precisely control who can access and purchase permits for specific parking areas, enhancing security and resource allocation.
        • Impact on Profile Fields: Remember that the Grouping (Staff, Student, Public, Athletics) you assign to a User Type affects the visibility of fields in the user's profile registration form. For instance, student users might see specific student ID fields that staff users would not.
        • Payment Type Restrictions: Utilize the Allowed Payment Types to ensure only relevant payment methods are available to specific user types (e.g., restricting payroll deduction to Staff users only).
        • Clear User Communication: Ensure users understand their assigned user type and how it affects their system experience, including visible lots and payment options.

        User Configuration

        Limiting Active Vehicles

        OPSCOM allows administrators to control the number of active vehicles a user can have associated with their profile. This feature, configured through User Types, helps manage parking inventory, prevent abuse, and ensures that users maintain a reasonable number of active vehicles in the system. This article explains how to set these limits and how they impact the user experience.

        Setup & Configuration

        Limiting active vehicles is controlled through the settings of individual User Types. For detailed information on working with user types, refer to this wiki article.

        1. Hover over System Configuration, then Users, and click Types. You'll be redirected to the User Type Administration page.
        Editing Active Vehicle Limits for a User Type
        1. Locate the user type you wish to edit from the list (e.g., Full Time Student) and click Edit.
        2. Locate the Extra Active Vehicles field. This number represents how many additional active vehicles a user of this type may have on their profile, beyond the first required active vehicle.
          • For example, if you set this number to 1, the user may have a maximum of 2 active vehicles (their one required active vehicle + one additional).
        3. Enter the desired number to reflect the maximum additional active vehicles allowed.
        4. Click Update User Type to apply your new limit.

        Using this Feature

        Once the active vehicle limit is set for a user type, it directly affects how users interact with their vehicle information on the user portal.

        What Users See on the User Portal
        1. A user logs into their portal and clicks the Vehicle tab to access their vehicle information section.
        2. This tab displays any vehicles currently associated with their profile (e.g., a "beige Acura" with plate "ABC316").
        3. The user attempts to add a new vehicle by clicking Add New Vehicle, fills out the information, and clicks Save Changes. A pop-up message will confirm the vehicle was successfully added, and it will appear on their Vehicles tab.
        Exceeding the Active Vehicle Limit

        If a user tries to add a vehicle that would exceed the configured limit (e.g., attempting to add a third vehicle when the limit is set to a maximum of 2 active vehicles):

        1. The user enters the vehicle information and clicks Save Changes.
        2. They will still receive a pop-up message indicating the vehicle was successfully added.
        3. However, the newly added vehicle will appear on the Vehicles page in an Inactive state.
        4. If the user attempts to make this third vehicle active by toggling its state, they will receive a pop-up message indicating that the vehicle cannot be made active due to the limit set for their user type.
        Minimum Active Vehicle Requirement

        Conversely, if a user attempts to make all vehicles on their profile inactive, a pop-up will appear indicating that the user must always have at least one active vehicle associated with their profile.


        Best Practices & Considerations


        User Configuration

        Manage User Departments

        User Departments allow administrators to categorize users based on their departmental affiliation within an organization. This feature enhances user management by enabling better organization, reporting, and potentially targeted communications or access controls, ensuring that user data is structured and easily manageable.

        Using this Feature

        1. Hover over System Administration, then Users, and click Manage User Departments. The Manage User Departments page will display. This page provides a simple interface to add, edit, and delete user departments.
        Adding User Departments
        1. Click Add User Department and enter the desired Department Name.
        2. Click Save Changes.
        Editing User Departments
        1. Locate the user department you wish to modify in the list.
        2. Click the Edit button next to the department.
        3. Update the existing name of that department.
        4. Click Save Changes.
        Deleting User Departments

        In order to delete a user department, it must not currently be in use by any user in the system. Administrators must first ensure that no users are assigned to this department before it can be removed. 

        1. Locate the department you wish to remove from the list.

        2. Click the Delete button next to the department and click Confirm.


        Best Practices & Considerations


        User Configuration

        Locker User Types

        Locker User Types allow administrators to categorize users specifically for the purpose of locker management. This enables flexible control over who can access and utilize certain locker areas or types, enhancing organizational efficiency and tailored access to locker resources.

        Setup & Configuration

        Locker User Types must be created within OPSCOM before they can be assigned. This is done via the Manage Locker User Types screen.

        1. Hover over System Configuration, then Users, and click Locker User Types.

        The Manage Locker User Types screen appears, listing any existing Locker User Types. This list typically includes the Name of the locker user type, and the Number of user records associated to that type.

        If you do not see the settings mentioned above, please contact support@ops-com.comcom to have them enabled for you. You will need the permission of your Primary Admin.

        Adding a New Locker User Type
        1. Click on the Add Locker User Type button.
        2. Enter the full Name of the user type (e.g., Public User).
        3. Click Save Changes (or similar button).

        The Manage Locker User Types screen will refresh, and your new user type will be added to the list.


        Using this Feature

        Assigning Locker User Types to User Profiles
        1. Hover over User Management and click User Search.
        2. Search for the user you want to edit.
        3. Edit their profile and choose the Locker User Type from the picklist.
        4. Click Submit Profile Information, review the submission, and click the Information Correct button.

        Locker User Types are not editable or viewable on the User Side portal. They must be assigned by administrators only.

        Assigning Locker User Types to Locker Areas

        Once Locker User Types are created and assigned to users, they must also be associated with Locker Building Areas to control user access to specific lockers.

        Refer to this wiki article for information about assigning Locker Types to Building areas.


        Best Practices & Considerations

        User Configuration

        Login Sources (SSO)

        Login Sources define the various methods by which users can sign into the system. This feature provides administrators with flexible control over user authentication, allowing for standard OPSCOM logins or integration with external identity providers like SAML or LDAP, enhancing convenience and security for diverse user populations.

        Setup & Configuration

        Login sources are managed under the System Configuration menu, within the Users section.

        1. Hover over System Configuration, Users, and click Login Sources.
        Default Login Source
        Adding Login Sources

        OPSCOM supports multiple login sources, allowing some users to utilize SSO while others log in directly.

        1. On the Login Sources page, click the Add Login Source button.

        2. Fill out the required information:

          • Red fields are required to be filled before you can click Save.
          • Yellow fields are technically required for the login source to function correctly, but they will still allow empty or invalid values to be saved initially. Yellow fields can also indicate that a change has been made to the field.

          The Login Source - Code field is crucial as it's what the user profile will match against when associating users with this new login source. However, only one login source code can be activated at a time for a particular type (e.g., you can have multiple SAML configurations, but only one primary 'SAML' code active for user matching at a time if the system differentiates by 'type' of code rather than unique code string across all). The source name (code) itself is typically determined by your Identity Provider, with the exception of 'OPSCOM' for direct logins.

        3. Name can be anything that is identifiable to you.

        4. Login Source is what you will see on the user profile to indicate if this user will login with a special source. Often is is called SSO or SAML
        5. Domain Name for OPSCOM to use should be set to the OPSCOM domain without any references to admin etc. For example, if the domain name you login looks like CLIENTID.admin.OPSCOM.com/admin, this should be changed to CLIENTID.OPSCOM.com only.
        6. Do not fill out the rest of the fields until you are ready to follow the instruction for setting up your SSO information.
        7. Click Save Changes to add the new login source.


        Using this Feature

        Once login sources are added, you can manage their status and properties.

        Managing Login Sources

        From the Login Sources page, you can manage your configured login sources using the buttons next to each entry:

        Active/Inactive/Hidden Login Sources

        You can make Login Sources Active, Inactive or Hidden. If a source is made Inactive, users who were previously connected will no longer be able to login and must be changed to a different login source.

        image.png


        Best Practices & Considerations

        Vehicle Configuration

        Vehicle Configuration

        Vehicle Plate Types

        Vehicle Plate Types allow administrators to categorize vehicles based on their official plate designation (e.g., Passenger, Commercial, Motorcycle). This feature is crucial for accurate vehicle identification, reporting, and aligning with specific parking or violation rules, ensuring your system reflects diverse vehicle classifications.  Plate Type, Plate Number and Province/State are considered the 3 essential criteria to making sure a plate is unique in OPSCOM.



        Using this Feature

        Managing Vehicle Plate Types is done through the Manage Vehicle Plate Types page.

        1. Hover over System Configuration, then Vehicles, and click Manage Vehicle Plate Types.
        2. The Manage Vehicle Plate Types page shows all currently defined vehicle plate types, providing a straightforward interface to add, edit, and delete various vehicle plate types.
        Adding Plate Types
        1. Click Add Plate Type.
        2. Complete the two required fields:
          • Name: The full, descriptive name of the plate type (e.g., "Passenger").
          • Short Name: A shorter name used, for instance, with handheld devices (e.g., "PASS").
        3. Click Save Changes to add the new plate type to the list.
        Editing Plate Types
        1. Locate the Plate Type you wish to modify in the list.
        2. Click the Edit button next to it.
        3. Make your updates and click Save Changes.
        Deleting Plate Types

        In order to delete a vehicle plate type, it must not be in use by any vehicles in the system. Administrators must first ensure that no vehicles are currently assigned this plate type before it can be removed. This prevents vehicle records from having blank or invalid plate type information. 

        1. Locate the plate type you wish to remove from the list.

        2. Click the Delete button next to it and confirm.


        Best Practices & Considerations

        • Accuracy is Key: Ensure your defined plate types accurately match the official plate designations in your region to maintain data integrity and simplify vehicle identification.
        • Clear Naming: Use clear and concise names for both the full Name and Short Name to avoid confusion for both administrators and field users.
        • Impact on Vehicle Records: Remember that these plate types are assigned to vehicle records. Deleting a plate type that is in use will cause data issues.
        • Reporting: Properly categorized plate types are valuable for generating accurate reports on vehicle populations and compliance.
        Vehicle Configuration

        Vehicle Colours / Colors

        Vehicle Colours / Colors in OPSCOM allows administrators to define and manage the picklist of available vehicle colours used throughout the system. This feature is important for accurate vehicle identification, detailed record-keeping, and ensuring consistency in data entry, supporting efficient enforcement and management operations.

        Using this Feature

        Managing Vehicle Colours is done through the Vehicle Colours page.

        1. Hover over System Configuration, then Vehicles, and click Manage Vehicle Colours.
        2. The Manage Vehicle Colours page shows all currently defined vehicle colours, providing a straightforward interface to add, edit, and delete various vehicle colours.
        Adding Vehicle Colours
        1. Click Add Colour.
        2. Complete Name field.
        3. Click Save Changes.
        Editing Vehicle Colours
        1. Locate the Colour you wish to modify in the list.
        2. Click the Edit button next to it.
        3. Make your updates and click Save Changes.
        Deleting Vehicle Colours

        In order to delete a vehicle colour, it must not be in use by any vehicles in the system. Administrators must first ensure that no vehicles are currently assigned this colour before it can be removed. This prevents vehicle records from having blank or invalid  information. 

        1. Locate the Colour you wish to remove from the list.

        2. Click the Delete button next to it and confirm.


        Best Practices & Considerations

        • Consistency: Use standard colour names to maintain consistency across your records.
        • User Experience: A well-maintained and comprehensive list of vehicle colours makes data entry easier and more accurate for both administrators and users.
        • Reporting: Accurate colour data can be useful for various reports, such as identifying common vehicle types in your lots.



        Vehicle Configuration

        Vehicle Makes

        Vehicle Makes in OPSCOM allows administrators to define and manage the picklist of vehicle manufacturers (e.g., Ford, Honda, Toyota) used throughout the system. This feature is essential for accurate vehicle identification, comprehensive record-keeping, and ensuring consistent data entry for all vehicle-related information.

        Using this Feature

        Managing Vehicle Makes is done through the Manage Vehicle Makes page.

        1. Hover over System ConfigurationVehicles, and click Manage Vehicle Makes.
        2. The Manage Vehicle Makes page displays, showing all currently defined vehicle makes. This page provides a straightforward interface to add, edit, and delete.
        Adding 
        1. Click Add Make.
        2. Complete Name field.
        3. Click Save Changes.
        Editing 
        1. Locate the Make you wish to modify in the list.
        2. Click the Edit button next to it.
        3. Make your updates and click Save Changes.
        Deleting 

        In order to delete a vehicle make, it must not be in use by any vehicles in the system. Administrators must first ensure that no vehicles are currently assigned this make before it can be removed. This prevents vehicle records from having blank or invalid  information. 

        1. Locate the make you wish to remove from the list.

        2. Click the Delete button next to it and confirm.


        Best Practices & Considerations

        • Accuracy and Completeness: Maintain an accurate and comprehensive list of vehicle makes to ensure precise data capture and easier searching for vehicle records.
        • Consistency in Naming: Use clear, consistent, and recognizable names for vehicle makes to avoid confusion and ensure data uniformity.
        • Data Integrity: Always verify that no vehicles are assigned to a specific make before attempting to delete it. Reassigning vehicles to another make (or to "Unknown" if applicable) is a crucial step to prevent data issues.
        • Reporting Value: Well-categorized vehicle makes contribute to more insightful reports, allowing for analysis of vehicle populations and trends within your parking environment.

        Vehicle Configuration

        Vehicle Types

        Vehicle Types in OPSCOM allows administrators to define and manage categories for different kinds of vehicles (e.g., Car, Truck, Motorcycle, Van). This feature is essential for accurate vehicle classification, supporting specific parking rules, and enhancing reporting capabilities within your OPSCOM system.

        Using this Feature

        Managing Vehicle Types is done through the Manage Vehicle Types page.

        1. Hover over System Configuration, then Vehicles, and click Manage Vehicle Types.
        2. The Manage Vehicle Types page shows all currently defined vehicle types, providing a straightforward interface to add, edit, and delete various vehicle types.
        Adding Vehicle Types
        1. Click Add Type.
        2. Complete Name field.
        3. Click Save Changes.
        Editing Vehicle Types
        1. Locate the Type you wish to modify in the list.
        2. Click the Edit button next to it.
        3. Make your updates and click Save Changes.
        Deleting Vehicle Types

        In order to delete a vehicle type, it must not be in use by any vehicles in the system. Administrators must first ensure that no vehicles are currently assigned this type before it can be removed. This prevents vehicle records from having blank or invalid  information.

        1. Locate the Type you wish to remove from the list.

        2. Click the Delete button next to it and confirm.


        Best Practices & Considerations

        • Comprehensive Categorization: Ensure your defined vehicle types cover all relevant classifications for vehicles that will interact with your parking system.
        • Clear and Consistent Naming: Use descriptive and consistent names for your vehicle types to facilitate easy understanding and accurate data entry for both administrators and users.
        • Reporting and Analysis: Properly categorized vehicle types are valuable for generating reports and conducting analysis on vehicle populations and parking trends.

        Parking Configuration

        Parking Configuration

        Lot Groups Management

        Lot Groups in OPSCOM allow administrators to logically group similar parking lots together, treating them as a single entity for certain configurations. This feature simplifies management by enabling shared settings like free parking time and vehicle count limits across multiple lots, providing a more streamlined approach to parking administration.

        Setup & Configuration

        A lot may only belong to one group, and membership in a group is optional.

        1. Hover over System Configuration, then Parking, and click Manage Lot Groups.
        2. Click the Add Lot Group button. 
          • Lot Group: Enter a descriptive Group Name in the text box.
          • Optionally, set a Free Parking Time Limit in minutes. This setting is typically used for lots equipped with pay-by-plate meters to provide a grace period for users to register their license plate.
          • Offence Location: Offence locations for lot groups are used in conjunction with static cameras. Through the use of a static camera report, a violation can be written that uses the offence location associated to the lot group the camera is in. 
          • Vehicle Counts Limit: Enter a numerical value for the Vehicle Counts Limit. This sets a maximum vehicle count for the entire group of lots.
        3. Click Save Changes to create the new lot group. The newly created lot group will now appear in the list on the Manage Lot Groups page.

        Assigning a Lot to a Lot Group

        Once a Lot Group is created, you can assign individual lots to it from the Lot Edit Page:

        1. Hover over Parking Management, then Lot Administration, and click Pricing & Lot Admin.
        2. Click on the Lot Name of the lot you wish to assign to a group.
        3. On the General tab, locate the Lot Group dropdown menu.
        4. Select the desired Lot Group from the list.
        5. Click Update Lot to save your changes.

        Best Practices & Considerations

        Parking Configuration

        Managing Lot Zones

        Lot Zones in OPSCOM allow administrators to define specific geographical or logical areas within a parking lot. This feature is crucial for managing pricing variations, access controls, and enforcement strategies tailored to different sections of a larger lot, enhancing flexibility and precision in parking operations.

        Using this Feature

        The Manage Lot Zones page provides a straightforward interface to add, edit, and delete various lot zones.

        1. Hover over System Configuration, then Parking, and click Manage Lot Zones.

        Adding Lot Zones
        1. Click the Add Lot Zone button.
        2. Complete the two required fields:
          • Name: The full, descriptive name of the Lot Zone (e.g., "Day Care Center").
          • Short Name: A shorter name used, for instance, with handheld devices (e.g., "DAY").
        3. Click Save Changes when finished to add the new zone to the list.
        Editing Lot Zones
        1. Locate the Lot Zone you wish to modify in the list.
        2. Click the Edit button next to the Lot Zone.
        3. Enter the desired changes to the zone's name.
        4. Click Save Changes to apply your updates.
        Deleting Lot Zones

        A Lot Zone can only be deleted if no records are currently associated with it. Administrators must first ensure that the zone is not in use (e.g., linked to any specific parking spaces, permits, or configurations within lots) before it can be removed. 

        1. Locate the Lot Zone you wish to remove from the list.

        2. Click the Delete button next to the Lot Zone.

        3. A confirmation window will appear.

        4. If you are sure you wish to delete the zone, click Delete in the confirmation window.


        Best Practices & Considerations

        Parking Configuration

        Common Lots

        Common Lot Types in OPSCOM allow administrators to categorize parking lots based on shared characteristics or administrative distinctions. This feature provides a way to organize lots beyond their physical location, facilitating better management and reporting. This article guides OPSCOM administrators on how to navigate to, add, edit, and delete Common Lot Types.

        Adding/Editing Common Lot Types
        1. Hover over Admin Options, then Parking, and click Common Lots.
        2. Click the Add Common Lot Type button at the top of the page (or Edit button next to an existing one).
        3. Enter/Change the Common Lot Type Name.
        4. Click Save Changes.

        Making changes to lot types that are being used will reflect the entire system. 

        Deleting Common Lot Types

        To delete a common lot type click the Delete button next to the type you wish to remove.

        You are unable to delete common lot types that are currently being used by lots within the system. You must first reassign or remove the lot type from any associated lots before getting a Delete button.


        Best Practices & Considerations

        Parking Configuration

        Permit States

        Permit States in OPSCOM allow administrators to define and manage the various statuses a parking permit can have within the system (e.g., Active, Expired, Voided, Lost). This feature is essential for accurately tracking the lifecycle of permits, facilitating efficient management, and providing clear reporting on permit validity and usage.

        Using this Feature

        The Manage Permit States page provides a simple interface to add, edit, and delete various permit states.

        1. Hover over System Configuration, then Parking, and click Manage Permit States.

        Adding Permit States
        1. Click the Add Permit State button.
        2. Enter the desired Permit State Name and choose if this permit will be a Valid state or not.
        3. Click Save Changes to add the new permit state to the list.
        Editing Permit States
        1. To edit an existing permit state, locate it in the list.
        2. Click the Edit button next to the permit state.
        3. Make your updates
        4. Click Save Changes to apply your updates.
        Deleting Permit States

        In order to delete a permit state, it must not currently be in use by any permits in the system. Administrators must first ensure that no permits are currently assigned this permit state before it can be removed. This prevents permit records from having blank or invalid state information if the permit state is deleted while in use. 

        1. To delete a permit state, locate it in the list.
        2. Click the Delete button next to the permit state.
        3. A modal window will appear, asking for confirmation.
        4. If you are sure you wish to delete the permit state, click Delete in the confirmation window.

        Best Practices & Considerations

        Location Configuration

        Location Configuration

        Locations

        The Manage Locations feature in OPSCOM allows administrators to define and organize various physical locations relevant to your operations, such as buildings, parking areas, or specific points of interest. This is crucial for accurate incident reporting, violation tracking, and providing clear geographical context within the system.

        Using this Feature

        The Manage Locations page provides a straightforward interface to add and delete various locations.

        1. Hover over System Configuration, then Manage Locations, and click Manage Locations.

        Adding Locations
        1. Click the Add Location button.
        2. Enter the name of your new location (e.g., "Mulloy Library").
        3. Select the Sub-Location(s) you would like associated with this main location.
          • Sub-Locations are specifically used in incident reporting and do not apply to vehicle violations.

        4. To make the location visible to violation writers on handheld devices or the admin side, enable the Writer Visible checkbox beside the location name.
        5. The GIS Number field is optional and is used by clients who utilize a geographic location code (GIS maps).
        6. Click Save Changes to create the new location.

        The Manage Locations page will refresh and display a confirmation message indicating that the Location has been updated (or added).

        Editing Locations
        1. Locate the Location you wish to modify in the list.
        2. Click the Edit button next to it.
        3. Make your updates and click Save Changes.
        Deleting Locations

        A location can only be deleted from the system if it is not associated with any existing records (e.g., incidents, violations, or other data where this location is referenced).

        1. If a location is eligible for deletion, you will see a Delete button specific to that location 
        2. Click the Delete button and confirm. This action will permanently remove the location from the system.

        Best Practices & Considerations

        Location Configuration

        Locations - Sub Locations

        Sub-locations in OPSCOM allow administrators to define more granular areas within a main location, primarily for detailed incident reporting. This feature enhances the precision of incident documentation by pinpointing specific spots within a larger location, providing richer context for investigations and analysis.

        Using this Feature

        The Manage Sub-Locations page provides a straightforward interface to add and delete various sub-locations.

        1. Hover over System Configuration, then Manage Locations, and click Manage Sub-Locations.

        Adding Sub-Locations
        1. Click the Add Sub-Location button.
        2. Enter the name of your new location.
        3. The GIS Number field is optional and is used by clients who utilize a geographic location code (GIS maps).
        4. Click Save Changes to create the new location.

        The Manage Sub-Locations page will refresh and display a confirmation message indicating that the Location has been updated (or added).

        Editing Sub-Locations
        1. Locate the Sub-Location you wish to modify in the list.
        2. Click the Edit button next to it.
        3. Make your updates and click Save Changes.
        Deleting Sub-Locations

        A sub-location can only be deleted from the system if it is not associated with any existing records (e.g., incidents, violations, or other data where this location is referenced).

        1. If a sub-location is eligible for deletion, you will see a Delete button specific to that location 
        2. Click the Delete button and confirm. This action will permanently remove the location from the system.

        Best Practices & Considerations

        Violations Configuration

        Violations Configuration

        Ticket Categories

        Ticket Categories in OPSCOM allow administrators to define and manage different types of violations (e.g., Municipal, Parking, Bicycle). This feature is essential for accurate incident reporting, enforcing specific rules, and tailoring violation processes, including whether tickets apply to vehicles or users, and their visibility on handheld devices.

        Using this Feature

        The Manage Ticket Categories screen allows for comprehensive configuration of how different violations are classified and processed.

        1. Hover over System Configuration, then Violations, and click Manage Ticket Categories.

        image.png

        Adding Ticket Categories
        1. Click Add Ticket Category
        2. Enter the Ticket Category Name (e.g., Moving Violation).
        3. Toggle to Allow it to be Visible on Handhelds.
        4. For Violation Applies To: toggle if this will apply to tickets issued to vehicles and/or to Users. 
        5. If this is for Users, toggle if you wish to Enable Failed to Identify.
        6. Click Save Changes. The new ticket type will now be included in the list.
        Editing Ticket Categories
        1. Locate the ticket type you wish to edit in the list and click the Edit button next to it. 
        2. Make your changes.
        3. Click Save Changes.
        Archiving Ticket Categories

        Ticket Types can be deleted, however, they are not actually removed from the system's database. Instead, they are archived to preserve the integrity of any historical data associated with that Ticket Type (e.g., past violations that used this type).

        1. Locate the ticket type you wish to delete.
        2. Click the Delete button and confirm.

        Best Practices & Considerations

        • Clarity and Specificity: Create ticket types that are clear, specific, and easily understood by both enforcement officers and users (e.g., "No Permit," "Fire Lane," "Smoking Violation").
        • Handheld Visibility: Carefully manage the "Visible on Handhelds" setting. Only enable ticket types that your field officers actively enforce.
        • Leverage the ability to apply tickets to Vehicles, Users or both to accommodate a broader range of enforcement scenarios beyond traditional parking infractions.
        • Data Integrity (Archiving): Understand that "deleting" a ticket type archives it. This means historical reports will still accurately reflect past violations, even if the category is no longer actively used.
        • Training: Ensure enforcement staff are trained on the proper use and selection of ticket categories, especially for "Applies to: Users" violations, to ensure accurate data capture.
        Violations Configuration

        Ticket Offence Items

        Ticket Offence Items define the specific violations (e.g., "Parked with No Proof of Payment," "Expired Meter") that can be issued within OPSCOM. This feature allows administrators to configure fine amounts, discounts, and specific behaviors for each offence, ensuring accurate and consistent enforcement across both web and handheld platforms.

        Using this Feature

        1. Hover over System Configuration, then Violations, and click Manage Ticket Offence Items.
        2. The Manage Ticket Offence Items page opens. This page provides comprehensive tools to add, edit, and configure individual offence items.
        Adding a New Offence Item
        1. In the top left box, select the Ticket Category (e.g., "Private Property") you wish to add an offence item to, or choose Unassigned Offence Items.
        2. Click Add New Offence Item
        3. Fill out the following fields:
          • Enter the Violation Type Description (e.g., "Parked With No Proof Of Payment").
          • Select the Ticket Category it belongs to (e.g., "Private Property").
          • Enter a Key. This optional field indicates specific tracking codes for violations (e.g., internal audit codes).
          • Enter a By-Law code This optional field is used by municipalities to link violations to specific by-laws when sending them to court for collections. It is a text field that accepts up to 20 alphanumeric characters.
          • Enable the Administrative Fee if required. (More about this below)
          • Fine Amount, Adjustable Fine Amount, and Discount Settings are covered below.
        4. Click Save New Offence Item when complete.
        Setting the Fine Amount and Discount
        1. Click Save Ticket Offence Item to save this configuration. You will be returned to the list view with your new offence listed under its Ticket Category.
        Is This Fine Amount Adjustable?

        This can be useful for scenarios such as repeat offenders or multiple offences. Officers can, at their discretion, increase the ticket amount (e.g., for repeat violations) or reduce it (e.g., when issuing multiple violations for less than the combined full amount), in accordance with your organization's business rules.

        Enable the Adjust Fine Amount checkbox in the ticket configuration screen:

        Administration Fees

        Admin Fees are useful for charges like Conviction Fees or Booting Fees.  Offence items designated as Administration Fees do not show on handheld units. They are only visible on the admin interface, ensuring field officers don't issue them directly.

        You can designate an offence item as an Administration Fee by selecting the Administrative Fee checkbox.

        Editing, Deleting, and Archiving Offence Items

        Best Practices & Considerations


        Related Videos

        Violations Configuration

        Sort Violations for Quick Access

        OPSCOM allows administrators to customize the display order of Ticket Offence Items (violations) for quicker access, especially useful for frequently used offences. By strategically adding spaces to the beginning of offence names, you can control their sorting order on both the admin interface and handheld devices, improving efficiency for enforcement officers and data entry personnel.

        When managing a long list of violation offence items, it can be time-consuming to scroll and find specific offences. The challenge is to reorder this list for quick access, ensuring the most commonly used offences appear at the top.

        The system sorts lists alphanumerically. We can take advantage of the fact that a space character () comes before all alphanumeric characters in the ASCII character table. By prefixing a violation name with one or more spaces, you can force it to appear higher in the sorted list.

        Example of Sorting with Spaces:

        Let's walk through a practical example of reordering a list of violations.

        1. Hover over System Configuration, then Violations, and click Manage Ticket Offence Items.
        2. In this example, we will select Private Property as the ticket category. This will display a list of violations categorized under "Private Property."
        Reordering Violations - An Example

        We want to reorder the list so that "Parked in No Parking Area" lists first, "Parked Blocking Fire Hydrant" lists second, and the rest of the violations list in alphabetical order after that.

        1. Modify "Parked in No Parking Area":

          • Click on Parked in No Parking Area to select it. The screen will refresh with the entry information for the violation.
          • Add a single space to the very beginning of the Violation Type Description field.
          • Click Save Violation Type.
          • Result: The list will now show " Parked in No Parking Area" (with the space) as the first item.
        2. Modify "Parked Blocking Fire Hydrant":

          • Next, select Parked Blocking Fire Hydrant.
          • Add a single space to the beginning of its Violation Type Description.
          • Save the violation type.
          • Result: The listing will change again. However, since both now have one space, " Parked Blocking Fire Hydrant" will appear before " Parked in No Parking Area" due to alphabetical sorting of the rest of the name.
        3. Adjusting Order with Multiple Spaces:

          • To ensure "Parked in No Parking Area" appears first and "Parked Blocking Fire Hydrant" second, we need to use a different number of spaces.
          • Select Parked in No Parking Area again.
          • Add a second space to the beginning of its Violation Type Description (so it has two spaces: Parked in No Parking Area).
          • Save the violation type.
          • Result: The list on the left now shows "  Parked in No Parking Area" in the first position, followed by " Parked Blocking Fire Hydrant" in the second position, and then the rest of the violations in alphabetical order.

        Best Practices & Considerations

        Violations Configuration

        Handhelds Devices Settings (Handheld Commons)

        The Handhelds Devices section in OPSCOM allows administrators to manage and configure handheld devices used for enforcement and data collection. This includes registering new devices, pushing messages, and updating device settings, ensuring seamless operation for field personnel and accurate data synchronization.

        Setup and Configuration

        In order to use the handheld as a ticket writer, you will need to have the following permission set:

        This setting comes with the role Patrol Officer by default. To check if this role is set up in your system:

        For more information on managing roles, click here!

        Before accessing a handheld device for the first time, new admin users are required to log in through the online admin portal and complete their initial password reset.

        Using this Feature

        1. Click Tools, then Handhelds Devices. Alternatively, you can access this on the Violations menu as well.
        2. The Handhelds - Common Settings screen appears, where you can manage various aspects of your handheld fleet. From here, you can edit settings such as ticket due dates, customize ticket footers, view device information, and add or manage individual handheld units.
        Adding a New Device

        When adding a new handheld device, the process involves both the device itself and the OPSCOM system configuration.

        1. Install Software: Start by installing the OPSCOM enforcement app on the handheld device.
        2. Obtain UUID: After the first login attempt on the device, you'll receive a notice indicating the device isn't registered. This message will display a UUID (Universally Unique Identifier) number. This is a 16-digit alphanumeric code typically found under your login screen on the device.
        3. Register Device in OPSCOM:
          • Once on the Handhelds - Common Settings page in the admin portal, click Add New Device.
          • A new screen will open. You must add the following information:
            • UUID: Enter the UUID obtained from the handheld device.

        You will need to include all characters in the UUID, including dashes between the groups of characters. Some UUIDs do not have dashes.

        Pushing Messages

        You can send messages directly to your configured handheld units:

        1. On the Handhelds - Common Settings screen, click the Push Message button.
        2. Follow the prompts to compose and send your message to the selected devices.
        Updating Device Data

        To modify settings for an existing handheld device:

        1. On the Handhelds - Common Settings screen, click on the device name you wish to update. This will open a drop-down list of editable settings.
        2. Make your desired changes to the device's configuration.
        3. Once finished, ensure you click Process Updates to save and apply your changes to the device.

        To edit the ticket footer, you must have the permission level and role of Primary Admin.


        Best Practices & Considerations

        Incidents Configuration

        Incidents Configuration

        Managing Incident Categories and Sub-Categories

        Incident Categories and Sub-Categories in OPSCOM are used to define and classify incidents reported within the system. This feature allows administrators to organize incident types, control their visibility in reports, and manage associated checklists, ensuring precise documentation and effective analysis of various occurrences.

        Using this Feature

        The Edit Categories and Sub Categories page allows you to add, edit, and manage both main incident categories and their more specific sub-categories.

        Adding Categories
        1. On the Edit Categories and Sub Categories page, click Add New Category located at the bottom of the page.
        2. Fill out the details for your new Category Name.
        3. Enter the GIS number (optional, used by clients with geographic location codes).
        4. Select whether it's an "In House" category (for internal use).
        5. Select if you'd like this category to be Included in Reports.
        6. Click Save Incident Category.
        Editing Categories
        1. On the Edit Categories and Sub Categories main page, locate the desired category from the listed items.
        2. Click the pencil icon next to it to edit.
        3. Make your changes and click Save Incident Category to apply your changes.
        Managing Sub-Categories

        Sub-categories provide a finer level of detail for incidents.

        1. To check a category for its sub-categories, click the Sub button next to the Category name.
        2. The list of Sub-Categories for that item will display. You can add a new sub-category at the bottom of the list.
        3. Enter the Name of the sub-category and enable the desired functions:
          • If a Checklist is required for incidents under this sub-category, click Required.
          • If it's to be Included in Reports, click Include.
          • If you wish to archive it, enable the Archive checkbox.
          • If you want to change the name of an existing one, click in the text box and change it.

        Once you have finished, click Save Sub-Categories.


        Best Practices & Considerations

        Incidents Configuration

        Managing Incident Flags

        Incident Flags in OPSCOM allow administrators to create custom tags or labels that can be attached to incident reports. This feature is vital for quickly categorizing, highlighting, or drawing attention to specific characteristics of an incident, improving reporting, search capabilities, and internal communication.

        Using this Feature

        The Edit Flags page allows you to add and edit incident flags, as well as control their visibility in reports.

        1. Hover over System Configuration, then Incidents, and click Flags.
        Adding Flags
        1. At the bottom of the list, click on the empty text box provided for adding a new flag.
        2. Fill in the name (e.g., "High Priority," "Follow-Up Required," "Safety Concern").
        3. Toggle the Include In Reports checkbox if you do not want this flag to show up in reports. By default, this checkbox is on.
        4. Click Add. The new Flag entry will now appear in the list and is ready to be used when creating or editing incident reports.
        Deleting Flags

        1. Click the Delete button next to the flag and Confirm


        Best Practices & Considerations

        Incidents Configuration

        Managing Ethnic Types

        Ethnic Types in OPSCOM allows administrators to define and manage a picklist of ethnic classifications for use within incident reporting. This feature supports detailed demographic data collection for incidents, enabling organizations to analyze trends, ensure fair and equitable practices, and comply with reporting standards.

        Using this Feature

        The Manage Ethnic Types page provides a straightforward interface to add, edit, and delete various ethnic types.

        1. Hover over System Configuration, then Incidents, and click Ethnicity.
        Adding
        1. Click Add Ethnic Type.
        2. Fill in the name.
        3. Click Save Changes.
        Editing
        1. Click the Edit button next to the Ethnic Type you want to change.
        2. Make your edits and click Save Changes
        Deleting

        In order to delete an Ethnic Type, it must not be in by any records in the system. You will not see a delete button unless there are no records associated to this type.

        1. Click the Delete button next to the type and Confirm

        Best Practices & Considerations

        Incidents Configuration

        Managing Incident Relations

        Incident Relations in OPSCOM allows administrators to define specific types of connections or relationships between individuals involved in an incident (e.g., "Witness," "Victim," "Suspect," "Reporting Party"). This feature is crucial for accurately documenting complex incident scenarios, ensuring all parties are properly identified, and facilitating comprehensive reporting and investigation.

        Using this Feature

        The Relation Administration page provides a straightforward interface to add and edit various incident relation types.

        1. Hover over System Configuration, then Incidents, and click Relations.

        Adding Relations
        1. Locate the empty text box provided at the bottom of the list for adding a new relation.
        2. Type in the desired relation name (e.g., "Witness," "Victim," "Suspect," "Reporting Party").
        3. Choose a unique color for this type.
        4. Click Insert New to add the new relation to the list.
        Editing Relations
        1. Locate the relation you wish to modify in the list and click the Edit button.
        2. Make your changes and click Save Changes.

        Best Practices & Considerations
        Incidents Configuration

        Extended User Profile Options

        Extended User Profile Options in OPSCOM allow administrators to define and manage additional, highly granular descriptive categories and values for user profiles, typically used in incident reporting. This feature enables officers to record unique physical features or identifiers of individuals involved in an incident, enhancing the detail and accuracy of incident reports.

        Using this Feature

        The User Extended Values Administration page allows you to add and update a variety of descriptive values for user profiles.

        1. Hover over System Configuration, then Incidents, and click Ext. User Profile Options.

        The User Extended Values Administration page displays a list of currently defined extended values. Notice the various types you can choose from in the dropdown menus to categorize your extended values. A Value Type acts as a category (e.g., "Hair Type"), while the Value Description details the specific characteristic (e.g., "Balding," "Red," "Long").

        Adding Extended User Value Types
        1. Scroll to the bottom of the page and select a Value Type from the dropdown menu (e.g., "Hair Type," "Clothing Color," "Tattoo Location").
        2. Type the Value Description in the textbox provided (e.g., "Curly," "Blue," "Left Arm"). Value descriptions can include a range of physical features/identifiers of a user, such as the location of a tattoo, the color of clothing, or the style of hair.
        3. Click Insert New to add and save the new extended user value.
        Editing Extended User Value Types
        1. Locate the extended value you wish to edit in the list and click Edit.
        2. Adjust the Category (Value Type) and/or the Name (Value Description) by selecting the appropriate textbox and making the desired changes (e.g., changing "Bald" to "Balding").
        3. Click Save Changes to save and continue.

        Best Practices & Considerations

        Incidents Configuration

        Missing Property Types

        Missing Property Types allows administrators to define and categorize different kinds of missing or stolen property (e.g., Electronics, Jewelry, Documents) within incident reports. This feature enables detailed and structured data collection for lost or stolen items, enhancing the accuracy of incident documentation and supporting investigations.

        Using this Feature

        The Edit Missing Property Types and Fields page allows you to define both the broad categories of missing property and the specific details (fields) you want to collect for each category.

        1. Hover over System Configuration, then Incidents, and click Missing Property Types.
        Adding Property Types
        1. Click the Add New Type button.
        2. Type the Name for the new missing property type and click Add New.
        Adding Fields to Types
        1. Click View Fields next to the Property Type you want to add a field to.
        2. Click Add New Field.
        3. Type in the Field Name (e.g., "Serial Number," "Color," "Brand").
        4. Select the Field Type from the dropdown menu (e.g., checkbox, textbox, dropdown, etc.).
        5. Select whether or not it is a required field by clicking the Required checkbox.
        6. Click Add New to save the new field.
        Editing Property Types
        1. Click the name of the property type you wish to change.
        2. Change the name and click Save Changes.
        3. Click the View Fields button if you want to edit any fields associated to this.
        Deleting Property Types

        Deleting a missing property type is a two-step process if it has associated fields.

        1. If there are NO fields found associated with that property: You can immediately click Delete Property Type.
        2. If there ARE fields found associated with that property:
          • Click View Fields and then click Delete All.
          • Click Save Changes to delete the selected fields.
          • Follow step one to Delete Property Type.

        Best Practices & Considerations

        Alerts Configuration

        Alerts Configuration

        Email Alert List

        The Email Alert List in OPSCOM allows administrators to define a specific set of email addresses that will receive automated warning notifications from the system. This feature is crucial for ensuring that designated personnel are promptly alerted to important system events or potential issues, enabling timely intervention and management.

        Setup & Configuration

        The Email Alert List is accessed through the System Configuration menu.

        1. Click System Configuration, then Alerts.
        2. Click Email Alert List.

        You'll be redirected to the Manage Alert Emails page, where you can manage the list of recipient email addresses.


        Using this Feature

        The Manage Alert Emails page enables you to add, edit, or delete email addresses that are designated to receive warning notifications. You can also use the Toggle Archived checkbox if you want to see inactive email addresses.

        Adding an Email Address
        1. Click Add Alert Email.
        2. An input box will appear. Enter the desired email address into the text box.
        3. Toggle the Active checkbox to on.
        4. Click Save Changes to add the email address to the list.
        Editing an Email Address
        1. Locate the email address you wish to modify in the list.
        2. Click the Edit button next to that email address.
        3. Make the desired changes to the email address in the text box.
        4. Toggle the Active checkbox if necessary.
        5. Click Save Changes to update the entry.
        Deleting an Email Address
        1. Locate the email address you wish to remove from the list.
        2. Click the Delete button to the right of that email address.
        3. A pop-up confirmation window will appear.
        4. Click Delete to confirm the removal, or click Cancel to return to the previous page without deleting.

        Best Practices & Considerations

        • Designated Recipients: Only add email addresses of personnel who are responsible for monitoring and acting upon system warnings.
        • Monitor Regularly: Periodically review the emails sent to these addresses and the list itself to ensure all recipients are current and the warnings are being received and actioned appropriately.
        • Group Email Addresses: Consider using a distribution list or group email address (e.g., ops-alerts@yourcompany.com) if multiple individuals need to receive the same warnings. This simplifies management, as you only need to update the group's membership in your email system, not in OPSCOM.
        • Validation: Ensure that all entered email addresses are valid and actively monitored to prevent missed critical alerts.
        Alerts Configuration

        Manage Email Warnings

        Manage Email Warnings in OPSCOM allows administrators to define and manage a list of email addresses that will receive critical system alerts. This feature is vital for ensuring that designated personnel are promptly notified of important events, such as security breaches, system errors, or specific operational triggers, enabling swift response and management.

        Setup & Configuration

        Manage Email Warnings is accessed through the System Configuration menu.

        1. Click System Configuration, then Alerts.
        2. Click Manage Email Warnings.

        You'll be redirected to the Manage Email Warnings page, where you can manage the list of recipient email addresses.


        Using this Feature

        The Manage Email Warnings page enables you to add, edit, or delete email addresses that are designated to receive warning notifications.  

        Adding an Email Address
        1. Click Add Warning Email.
        2. An input box will appear. Enter the desired email address into the text box.
        3. Click Save Changes to add the email address to the list.
        Editing an Email Address
        1. Locate the email address you wish to modify in the list.
        2. Click the Edit button next to that email address.
        3. Make the desired changes to the email address in the text box.
        4. Click Save Changes to update the entry.
        Deleting an Email Address
        1. Locate the email address you wish to remove from the list.
        2. Click the Delete button to the right of that email address.
        3. A pop-up confirmation window will appear.
        4. Click Delete to confirm the removal, or click Cancel to return to the previous page without deleting.

        Best Practices & Considerations

        • Designated Recipients: Only add email addresses of personnel who are responsible for monitoring and acting upon system warnings.
        • Monitor Regularly: Periodically review the emails sent to these addresses and the list itself to ensure all recipients are current and the warnings are being received and actioned appropriately.
        • Group Email Addresses: Consider using a distribution list or group email address (e.g., ops-alerts@yourcompany.com) if multiple individuals need to receive the same warnings. This simplifies management, as you only need to update the group's membership in your email system, not in OPSCOM.
        • Validation: Ensure that all entered email addresses are valid and actively monitored to prevent missed critical alerts.

        Payments Configuration

        Payments Configuration

        Manage Deposit Types

        Deposit Types allow administrators to define and manage various categories of deposits (e.g., for permits, equipment, or specific services). This feature is essential for accurately tracking refundable amounts, providing clear financial oversight, and ensuring proper accounting for deposited funds within the system.

        Using this Feature

        The Manage Deposits page provides a straightforward interface to add, edit, and view the usage of various deposit types.

        1. Hover over System Configuration, then Payments, and click Manage Deposit Types.
        Adding a Deposit Type
        1. Click Add Deposit Type.
        2. Fill out the information as needed:
          • Label: This is the name that will be used to identify the deposit type (e.g., "Permit Deposit," "Key Fob Deposit").
          • Placeholder Text: This field is optional. It provides a prompt or sample information that will appear in the deposit information text field when creating a deposit record.
          • Flags: This toggle controls the ability to edit the Assignable Text field in the resulting active deposit record. This text will appear in the user's profile associated with the deposit.
          • Amount: The amount that the deposit will cost.
          • Active checkbox: This determines if the deposit is currently available to be assigned.
        3. Click Save Changes.
        Editing a Deposit Type
        1. Locate the deposit type and click the Edit button next to it.
        2. Make any necessary changes to the fields.
        3. Click Save Changes.
        Deleting a Deposit Type

        1. If no records are associated with this deposit you can click the Delete button.


        Best Practices & Considerations

        Payments Configuration

        Managing Payment Types

        Managing Payment Types allows administrators to control which payment methods are available throughout the system. This comprehensive control enables you to define new payment options, assign them to specific user types (e.g., Staff, Students, Public), and configure their usage for subscriptions or guest payments, thereby streamlining transactions and ensuring alignment with your organization's financial policies.

        Using this Feature

        The Payment Types screen gives you a comprehensive interface to create, edit, and view details about different payment methods available in OPSCOM.

        1. Go to System Configuration, then Payments, and click $ Setup Payment Types.
        Adding Payment Types

        Use Case - For this example, we will setup a Payment type that will use the provider Always Successful. This will allow payments to immediately be flagged as fully processed with no intervention of any admin. This is often used for things like Payroll deduction. For example, you want your users to be able to purchase a permit through Payroll deduction that will immediately be valid upon checkout. The actual payments will take place through payroll and have nothing to do with OPSCOM.

        1. Click the Add Type button.
        2. The list of Providers is hard coded and controlled by Tomahawk. You will not be able to change this picklist. The tooltip below the provider will tell you what each provider means. 
        3. Pick Always Successful for this example.
        4. Click Next Step.
        5. Provide a Type Name.
        6. Choose the User Types this will be available to.
        7. On the Settings tab, Enable the checkboxes as you required.
        8. In the section Allowed Payment Types, you will see any payment types that are currently active first, then a list of inactive payment types after. 
        9. Click Update Payment Type.
        Hosted Payment Providers

        Once you retrieve the required values from your hosted payment provider of choice, save the credentials securely and contact OPSCOM Support for further instructions.

        The information you obtain in the above documentation are credentials that secure the information exchanged between OPSCOM and the provider. Please save these in a secure manner, it is important they are stored properly to ensure operational security.

        Extended Payment Information

        For each payment type, you can view extended information on the Payment Types screen.

        There are also three columns on the far right that use an X or checkmark to indicate specific uses of the payment type:

        Configuring Payment Types for Subscriptions and Guest Payments

        You can fine-tune how specific payment types are used for subscriptions and guest payments.

        1. Find the payment type you wish to configure and click the Pencil icon.
        2. Click the Settings tab.
        3. Select the items you wish to allow the payment type to be used for (e.g., enable Text2ParkMe, subscriptions to permit renewals, as well as guest payments).
        4. Prompt Information can be changed as well. You can enable only an email address or full address information. Full address info is required when the provider is doing Address Verification using AVS, 3DS or other similar service. This controls what shows up on the QR Code reservations screen after the Payment Type is selected. 
        5. Click Update Payment Type
        Processing as an Admin

        When processing payments as an administrator, the payment types presented will be split into two categories:


        Best Practices & Considerations

        Payments Configuration

        Managing Convenience Fees

        Convenience Fees in OPSCOM allow administrators to add an additional flat-rate charge directly to user payments, managed entirely within the OPSCOM system. This feature provides flexibility to offset processing costs, incentivize certain payment methods, or cover administrative burdens, distinct from any transaction fees imposed by external payment providers.

        Difference Between Transaction Fees and Convenience Fees

        It's crucial to understand the distinction between these two types of fees:

        It is possible for a system to utilize both Convenience Fees (managed by OPSCOM) and Transaction Fees (managed by the payment provider), but recognizing their distinct origins and management is important.


        Using this Feature

        The Fees Page allows you to set up various convenience fees. 

        You can only use Convenience fees if you have Bambora/Worldline as your payment provider.

        Fee Limitations

        Before configuring, understand these limitations:

        • Applied Once Per Order: Fees are applied once per fee type per order. This means if a fee is set for permits, only a single fee is applied to the order, regardless of whether it contains one permit or five permits.
        • Flat Rate Only: Fees are currently a flat rate. There is no percentage-based fee option at this time.
        • Grand Total Sent: Fees are not sent to the payment provider as a secondary item. Only the grand total (item price + convenience fee) is sent for processing.
        Fee Examples and Setup

        Admin Collected Fee for Collecting Cash and Cheques (Deterrent Fee)

        • Scenario: The administrator wants to encourage online payments. A fee is set up as a deterrent when users pay with cash or cheque, covering the increased administrative burden.
        • Setup: The fee would apply to all item types but only to payment types of Cash and Cheque.

        Admin Collected Fee for Permits

        • Scenario: Permits are sent to a third party for enforcement, and that third party charges $0.50 per permit they enforce. The client wishes to pass this cost onto the user.
        • Setup: The fee would apply to all payment types, but only to Permits and Temp Permits. The setup would specify $0.50 as the fee amount.

        Admin Charges a Convenience Fee to Cover an OPSCOM Collected Transaction Fee

        • Scenario: There's an agreement with the payment provider that all permits will incur a $2.95 transaction fee paid to OPSCOM. The client still wants to receive the full $150 for a purchased permit, so they set up a convenience fee to cover this cost.
        • Setup: The convenience fee will be charged when selecting the specific payment type that incurs the $2.95 transaction fee. For example, the setup would apply to the relevant payment provider and define the convenience fee as $2.95.

        Admin Includes the Transaction Fee in the Price of the Item (No Fee Setup in OPSCOM)

        • Scenario: An agreement exists where all permits incur a $2.95 transaction fee paid to OPSCOM. However, the client chooses to absorb this fee by increasing the item's price. If a permit costs $150, then $2.95 of that will be sent to OPSCOM, leaving the client with $147.05.
        • Setup: There is no specific setup for fees in this scenario within OPSCOM, as the fee is already embedded in the item's base price. If you want to inform users that a transaction fee is included in the final amount, you will need to update a relevant footer message (e.g., in email templates or on the user portal) stating this.

        Setting Up the Fees

        You can access the Fees page to accommodate any of the scenarios above.

        1. Hover over System Configuration, then Payments, and click Fees.
        2. Click Add Fee and follow the diagram below.
        3. Click the Update button to save.
        3791d194-e0da-433d-bf84-b470d263c958.png

        Best Practices & Considerations

        • Clarity for Users: Clearly communicate any convenience fees to your users before they complete a transaction. Transparency builds trust.
        • Strategic Application: Use convenience fees strategically. They can deter cash payments, offset third-party costs, or cover transaction fees, but ensure they align with your overall pricing strategy.
        • Flat Rate Limitation: Remember that fees are flat rate, not percentage-based. Plan your fee amounts accordingly.
        • Impact on Grand Total: Be aware that OPSCOM adds the convenience fee to the item's price to form the grand total before sending it to the payment provider.
        • External Transaction Fees: Distinguish between OPSCOM's convenience fees and any external transaction fees imposed by your payment gateway. Understand where each fee is applied and how it impacts your revenue.
        • Reporting: Consider how convenience fees will be reported and accounted for in your financial reconciliation processes.

        Payments Configuration

        Taxes

        The Taxes configuration page in OPSCOM allows administrators to define and manage the tax percentages applied to payments made within the system. This feature is crucial for ensuring accurate tax calculation during checkout, maintaining compliance with local tax regulations, and providing transparency to users regarding applicable taxes.

        Setup & Configuration

        You must be a Primary Admin with the permission to Manage System Configuration to be able to edit the system settings. 

        If you do not see the settings mentioned in this article, please contact support@ops-com.com to have them enabled for you. You will need, in writing, the permission of your Primary Admin.

        Using this Feature

        The Taxes page allows you to configure multiple settings for each tax type, ensuring accurate calculation and display.

        1. Hover over System Configuration, then Payments, and click Taxes.

        Editing a Tax Type

        When editing an existing tax type, the following settings are available:


        Best Practices & Considerations

        Payments Configuration

        The Invoice Template

        Editing the template

        To access the template, go to the System Config menu and click on Email Templates.

        The screen will refresh with a list of possible templates to edit. In our case, we want to click on the Edit button for Permit Invoice to access the template.

        image.png

        The screen will refresh with the complete Template form as seen below.

        image.png

        The form contains 4 areas:

        At the top, Meta Data for this specific template.
        On the left, a list of possible Short Codes that can be used on this template form.
        On the right, the actual Template.
        At the bottom, a Text Content field (This field can be configured for a plain text version of the

        Meta Data

        Label - Enter a name for this Template.
        Type - This field auto fills. 
        Language - Choose the language of the template.
        Layout - Choose default layout.
        Subject - This text will appear as the Email Subject. Note that the use of short code is permitted in this field. In this case, we are calling up the account name for the company being invoiced.

        Short Code List

        The template allows the use of special tokens, or short codes, to pull information from the database to appear on the invoice when sent.
        These include:

        [invoice account="number"] The account number for the company.
        [invoice account="name"] The account name for the company.
        [invoice account="fulladdress"] The full address for the company.
        [invoice account="invoice_comments"] The invoice comment value that is editable for companies only. Any line breaks will be preserved.
        [invoice show="invoiceno"] Invoice Number.
        [invoice show="duedate"] Invoice due date.
        [invoice show="billdate"] Invoice bill date.
        [invoice show="subtotal"] Subtotal of all items before tax.
        [invoice show="taxtotal"] Total amount of tax.
        [invoice show="amounttotal"] The total sum amount for all outstanding permits for this invoice.
        [invoice show="counttotal"] The total number of permits for the selected sales window.
        [invoice show="details"] The list of permits, cost and who has the permit.

        image.png


        These tokens can be placed anywhere on the template and will pull data from the system, similar to a mail merge functionality.

        For example, in the Bill To: area, the system will retrieve the Full Address of the Company as well as the Company Account Number using these two short code tokens:
        [invoice account="fulladdress"] The full address for the company.
        [invoice account="number"] The account number for the company.

        image.png


        The Template

        There are a number of areas on the template that can be edited by the admin. To add branding to the template there are two areas that will be of concern.

        The Company Logo Field:
        This is where you would place your company logo. Using a .JPEG or .PNG file format is recommended. 

        image.png

        Your Company Address:
        Enter your company address here.

        image.png

        Invoice Identification:
        In this section use short code to pull in the Invoice Number, Billing Date, and Due Date.

        image.png

        Invoice Details:

        The short code [invoice show="details"] pulls in the list of permits that will appear on the Invoice. (See a sample of the Invoice below)

        These include:

        Parker's Name
        Item type being Paid for (Permit, Access card, etc.)
        Item number (Permit Number)
        Sales Window
        Lot Name
        Quantity
        Cost

        image.png



        Payment Information (Billing Cost):
        In this section use short code to pull in the billing information such as Subtotal, Calculated Taxes, and Total Billing Amount.

        image.png


        You may also wish to add comments to the invoice. Comments can be added in the company configuration. 

        image.png

        The Email with PDF attached:
        Here is a sample of what the resulting email would look like. There is also a .PDF version of this invoice attached to the email.

        image.png


        Payments Configuration

        Setup payments with Flex Dollars

        This article describes the Flex Dollar and Payroll Deduction feature, a specialized payment method for handling partial payments with credits. This feature allows your users to apply a pre-defined amount of flex dollars towards a permit purchase, with the system automatically notifying administrators of the remaining balance to be processed via payroll. 

        OPSCOM Support Configuration

        The Flex Dollar Payment feature is a custom development, tailored specifically for one client, Trent University. It is not intended to be useful to, or available to all clients. Its availability is controlled by specific configurations set up by an OPSCOM Support team member.

        This feature requires configuration by an administration of your system, and must also be enabled by an OPSCOM support team member before it can be used. The setup involves defining the selectable flex dollar amounts, setting the notification email, and assigning the payment type to the appropriate users.

        This feature is enabled by a system-level setting that is typically configured by OPSCOM support upon request. Once enabled, you may proceed with the steps below.

        Configuration and Functionality

        1. To enable flex dollars, hover over System Configuration, and click System Settings.

        2. Click Permits.

        3. Enable the checkbox beside Enable Flex Dollars.

        Configure Email Notifications

        An email address must be configured to receive a notification internally and each time this payment method is used (and the details of the transaction for accounting).

        1. Hover over System Configuration, Payments and click Manage Flex Dollars

        2. In the Flex Dollars Alert Email text box, enter an email address you will be monitoring.

        This email address must be monitored for any changes to be made to student flex dollar balances.

        Define Flex Dollar Amount

        Create the specific flex dollar values that users can select during checkout.

        1. Hover over System Configuration, Payments, and click Manage Flex Dollars.

        2. Click the Add New button.

        3. Enter a Label. This is the text the user will see in the drop-down menu (e.g., "Apply $100 of Flex Credit").

        4. Enter the corresponding numeric Value (e.g., 100.00).

        5. Click Save.

        6. Repeat this process for all the pre-determined flex dollar amounts your organization offers.

        Assign Payment Method to User Types

        Finally, this payment method must be enabled for the specific user types who are permitted to use it.

        1. Hover over System Configuration, Users, and and click User Types.

        2. Select the user type you wish to grant access to (e.g., Staff).

        3. In the user type settings, assign the Flex Dollars/Payroll Deduction payment option.

        4. For detailed instructions, please refer to the User Types Administration wiki article.

        Using this Feature

        Once configured, the feature provides a streamlined workflow for users and a clear notification process for administrators.

        User Purchase Workflow
        1. An eligible user adds a standard term permit to their shopping cart.

        2. On the checkout page, they select Flex Dollars/Payroll Deduction as the payment method.

        3. A new drop-down menu appears, populated with the flex dollar Labels you configured.

        4. The user selects an amount and completes the transaction. Their permit is considered valid and is issued immediately.

        Administrator Workflow (Post-Purchase)
        1. Upon successful purchase, an email is automatically sent to the address configured in "Flex Dollar Alert Email" field.

        2. This notification contains the key information needed for manual processing:

          • User's Name and Contact Information

          • Permit Details

          • Flex Dollar Amount Applied

          • Remaining Balance Due

        3. Your administrative team (e.g., Payroll or Parking department) uses this information to confirm users flex dollar balances the remaining balance via your organization's internal payroll system.

        4. For auditing purposes, a note detailing the flex dollar amount is also automatically added to the users transaction payment record.

        The payroll deduction component is not an automated process and neither is the updating of Flex Dollar balance. The system's function is to calculate and report the remaining payroll deduction balance to administrators. 

        Best Practices & Considerations

        Payments Configuration

        Stripe Payment Provider Setup

        This feature shows how to integrate with Stripe to process credit card payments directly within the system. Its primary purpose is to provide a secure and seamless checkout experience for users while simplifying financial reconciliation for operations. This article is intended for OPSCOM administrators responsible for financial setup.


        Setup and Configuration

        Admin Portal

        To begin the integration, an administrator must setup a payment type in OPSCOM, with will be linked to their Stripe account. This is handled through the central administration portal where you will input your unique credentials.

        Once the provider is selected, you can name the payment typeselect applicable user types, and then go to the settings tab.

        Now, you have to get the API keys for your Stripe account, and setup webhooks, which can be found on the stripe dashboard, which you should be logged into, from a previous step. Your Publishable Key, and Secret Key, can be found and copied here. You can click on these values to copy them, and paste them into the payment type settings in OPSCOM.

        image.png

        You must provide your unique identification keys. Enter your Stripe public key into the Publishable Key field and your Stripe secret key into the Secret Key field.  Only enter the Testing Credentials until you are ready for your users to have access to this.

        Take this time to ensure that the Currency setting is correct, in the payment type settings (the default is US dollars). The next steps will be about populating the Webhook ID and Webhook Secret fields, in OPSCOM, with the correct information from your Stripe dashboard.

        image.png


        Third-Party Webhook Configuration

        Webhooks are essential for Stripe to notify OPSCOM regarding payment successes or refund completions.

        Without these Webhooks, the system WILL NOT communicate any transaction information to OPSCOM.

        Sub-section What it covers
        Register Your Endpoint Step-by-step Stripe Dashboard instructions to create an event destination, select event types, and enter the OPSCOM webhook URL
        Retrieve Your Signing Secret How to reveal and copy the whsec_ secret, and destination ID into OPSCOM
        Test Your Endpoint Stripe CLI commands to forward live test events locally before going live
        Secure Your Endpoint Signature verification explanation and IP allowlisting recommendation
        Manage Event Delivery Delivered/Pending/Failed status descriptions and how to manually resend events

        Register Your Endpoint

        To begin receiving notifications, you must define where Stripe should send transaction data. In your Stripe Dashboard, click on Developers (bottom left) and select Webhooks.

        image.png

        Click the Add Destination button to open the configuration window.

        You must select the specific event types the system needs to process. For a standard setup, ensure you select payment_intent.succeeded for successful payments, payment_intent.payment_failed for failed payments, and payment_intent.canceled for canceled payments. Now click Continue.

        image.png

         Select Webhook endpoint, and click continue again.

        image.png

        Give the webhook a descriptive name, and in the Endpoint URL field, enter the specific URL provided by OPSCOM, in this format: https://[CLIENTID].ops-com.com/api/system/payments/stripe/callback

        Retrieve Your Signing Secret

        Once the endpoint is created, Stripe generates a unique security key to verify that the data sent to your server is authentic. On the summary page for your newly created webhook, locate the Signing secret section.

        image.png

        Click Reveal to display the string, which typically begins with the prefix whsec_.

        Copy (highlighted in a green box in the picture above!) this entire string and navigate back to your OPSCOM Payment Gateway settings. Paste the secret into the Webhook Secret field. This handshake ensures that OPSCOM only processes legitimate requests from Stripe and ignores any unauthorized attempts to alter transaction data.

        Once the endpoint is saved, you'll see the Signing secret, and Destination ID provided by Stripe. Return to your OPSCOM configuration and paste the Signing secret into the Webhook Secret field, and the Destination ID into the Webhook ID field to ensure all incoming data is securely verified.

        Ensure that your Webhook Secret is correctly matched between Stripe and OPSCOM to prevent "Pending" status errors on completed payments.

        image.png


        User Experience and Handheld Use

        Web Portal Transactions

        Users will interact with the Stripe interface during their standard checkout process. When they reach the final stage of a transaction, they simply click the Pay with Credit Card button to open the secure payment form. After they enter the credit card details into the form, they click the Submit Payment button to complete the purchase.

        Handheld App — OPSCOM Parking Enforcement

        For administrators or staff using handheld units in the field, the process is optimized for touch interaction. Tap Checkout to open the payment summary within the app. From there, tap Select Payment Method and choose Stripe. To prevent accidental charges, the final step requires you to tap and hold the Process Payment button to finalize the transaction.

        Managing Transactions and Reports

        Administrators can review all processed payments and manage financial returns through the standard reporting interfaces. Hover over Financial Management and click Transaction Reports then Recent Payments to view a live list of activity.

        Within this report, the Status column displays the current state of each payment, while the Payment Date indicates exactly when the transaction occurred. If you need more detail, click the View Details icon next to a specific transaction to see the full Stripe receipt.

        If a correction is needed, click the Refund Payment button to initiate a return of funds. You will then click the Confirm Refund drop-down menu and choose Full Refund to finalize the reversal.

        You can quickly find a specific transaction by using the search bar to enter a user's name or a specific receipt order ID/Confirm Code.


        Best Practices and Considerations

        Dispatch Configuration

        Dispatch Configuration

        Managing Dispatch Categories

        Dispatch Categories allow administrators to define and classify the types of dispatchable events or incidents (e.g., "Parking Incident," "Security Alert," "Maintenance Request"). This feature is crucial for organizing dispatch logs, streamlining response protocols, and enabling accurate reporting on the nature of dispatched activities.

        Using this Feature

        The Dispatch Categories Administration page provides a straightforward interface to manage your various dispatch categories.

        Click System Administration, Dispatch, and click Manage Dispatch Categories.

        Adding Dispatch Categories
        1. Click the Add Dispatch Category button.
        2. Type in the Name and click Save Changes.
        Editing Dispatch Categories
        1. Choose the Edit button next to the category you wish to edit.
        2. Make the changes and click Save Changes.

        System-Wide Impact of Edits - When you make changes to a dispatch category that is currently in use by records in the system, these updates will be reflected across the entire system for all associated dispatch logs and related data. 


        Best Practices & Considerations

        Dispatch Configuration

        Managing Dispatch Sources

        Dispatch Sources in OPSCOM allow administrators to define and categorize the origins of dispatch calls or events (e.g., "Phone Call," "Email," "Officer Initiated"). This feature enables better tracking of incident intake, facilitates efficient routing to relevant categories, and enhances reporting on the origins of dispatch activities.

        Using this Feature

        The Dispatch Category Link Administration page allows you to define where your dispatch calls originate from and link them to relevant dispatch categories.

        1. Click System Administration, then Dispatch, and click Manage Dispatch Sources.

        Adding a Dispatch Source
        1. Click the Add Dispatch Source button.
        2. Type in the Name (e.g., "Walk-In," "Radio," "Internal Alert").
        3. Select the categories that should be linked to this source from the connected dropdown menu.
          • Note: If you want to select all categories, you can left-click on the first category and use CTRL Click to select them all.
        4. Click Save Changes
        Editing a Dispatch Source
        1. Choose the Edit button next to the source you wish to edit.
        2. Make the changes and click Save Changes.

        Best Practices & Considerations

        Changing the Organization Name Displayed to Parkers

        This article describes how to change your organization's display name. This global setting updates the name that appears on the public-facing website and on the screen of all connected handheld units. It also controls the name that appears at the top of violation printouts.

        Using this Feature

        This is a core system setting and does not require any special configuration to access or modify.

        1. Go to System Configuration, and click System Settings.

        2. Click General System Settings from the list.

        3. Locate the following two fields at the top of the page:

          • Organization Name: Website  (This appears on your website)

          • Organization name: Handheld  (This appears on your handhelds, and violation notices printed with a handheld)

        4. Enter the desired display name into each field.

        5. Scroll to the bottom of the page and click the Save Changes button.


        Best Practices & Considerations