# Customization and Integration

# Single Sign-On (SSO) and OperationsCommander - What do you need to Consider?

<p class="callout info">**Single Sign-On (SSO)** offers a streamlined and secure way for your organization's users to access OPSCOM. Instead of managing separate usernames and passwords for OPSCOM, users can log in once using their existing company or institutional credentials, gaining seamless access to various services, including OPSCOM. This simplifies the login experience and enhances overall security.</p>

### What is Single Sign-On (SSO)?<span class="heading-anchor-wrapper" role="presentation"><button aria-label="Copy link to heading" class="cc-1r0b9w7" type="button"><span aria-label="Copy" class="cc-1afrefi" data-vc="icon-undefined" role="img"><svg height="24" role="presentation" viewbox="0 0 24 24" width="24"><g fill="currentcolor" fill-rule="evenodd"><path d="m12.856 5.457-.937.92a1 1 0 0 0 0 1.437 1.047 1.047 0 0 0 1.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 0 1 .203 3.81l-2.903 2.852a2.646 2.646 0 0 1-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 0 0-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"></path><path d="m11.144 19.543.937-.92a1 1 0 0 0 0-1.437 1.047 1.047 0 0 0-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 0 1-.203-3.81l2.903-2.852a2.646 2.646 0 0 1 3.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 0 0 .357 6.82c1.893 1.517 4.695 1.226 6.422-.47"></path></g></svg></span></button></span>

At its core, SSO is about simplifying access. Imagine having one key that opens multiple doors. With SSO, that key is your single set of login credentials (username and password) that grants you access to various online applications and websites. Many organizations use SSO to provide their employees or members easy and consistent access to all their digital tools. When OPSCOM is integrated into your SSO system, your users can access our services without needing to create or remember another distinct account.

##### <span style="text-decoration: underline;">How SSO Works in a Simple Way</span>

SSO acts like a central gatekeeper for your online services:

1. **You Request Access**: When you try to log in to an online tool or website (like your work email or a school portal), the system recognizes it's an SSO-enabled service.
2. **Redirection to SSO**: Instead of asking for your username and password directly, the website sends you to a dedicated SSO service – a trusted system specifically designed to handle logins for all your integrated applications.
3. **Your Single Login**: On this SSO service page, you'll enter your username and password. This is the *only* time you'll need to enter these details to access multiple integrated services.
4. **Verification**: The SSO service checks your login information. Once it confirms your identity, it creates a secure, temporary "digital pass" or token.
5. **Return to OPSCOM**: This "digital pass" is securely sent back to OPSCOM (or the original application you wanted to access).
6. **Access Granted**: OPSCOM recognizes and trusts this "digital pass," allowing you to immediately access your account and start using the system without any further login prompts.

##### <span style="text-decoration: underline;">Why Organizations Use SSO</span>

- **Convenience**: Users only need to remember one set of login details for multiple applications.
- **Time-Saving**: Quick and effortless access to various services eliminates the need to repeatedly log in, improving productivity.
- **Enhanced Security**: With fewer passwords to manage, users are less likely to create weak passwords, reuse them across sites, or write them down, which generally leads to stronger overall security.

### Key Considerations Before Setting Up SSO with OPSCOM

Implementing SSO requires planning and coordination to ensure it aligns with your organization's specific needs and security protocols.

- **Investment Required**: SSO is a <span style="text-decoration: underline;">**premium feature**</span> within OPSCOM. There is a setup fee and recurring fees associated with its functionality. To begin the process and discuss pricing, please contact your Sales Representative or email [support@ops-com.com](mailto:support@ops-com.comcom).
- **User Types and Access**:
    
    
    - Will certain groups of users (e.g., students, staff) use SSO, while others (e.g., the general public) continue to use a direct OPSCOM login?
    - Do you need different login methods for different user types?
- **User Data Management**:
    
    
    - How do you prefer to get your user accounts into OPSCOM initially?
    - Do you want new user accounts to be created automatically "on the fly" when a user logs in via SSO for the very first time?
    - Do you need user information in OPSCOM to automatically stay synchronized with your main organizational system (Identity Provider) over time, or is a one-time import sufficient?
    - Which specific user details (like name, email, student ID) from your existing system do you want to be shared and synchronized with OPSCOM?

Our Client Success team is ready to guide you through these important considerations and help tailor the SSO setup for your organization's success and seamless operation.

# Custom Development Expectations

## Planning &amp; Scope

For clients wishing to pay for custom development, it is critical that a well thought out scope is developed with your Account Executive (AE). If you are designing the scope with the AE we consider you the project lead for your organization. It is important to provide us with workflow documentation, explanations of the problem you are trying to solve with your custom development and your ideal end result. There are 2 areas you need to consider:

- Goals
- Requirements

## Goals - What are You trying to do?

What is the end goal or specific outcome you want. For example, you may wish to simplify the user experience or issue violations more efficiently. Provide us with as much detail as possible.

## Requirements

Clearly, define all the processes you want in a step by step description. The following is a brief example:

- Adding a user’s middle initial to their profile
- Is this a mandatory field in the profile?
- Will all Users be prompted to update their profiles? Will it be on next login?
- What if they don’t have a middle initial?
- Once instituted will the initial be required on reports? If so which ones?
- Will it be required to be populated on violations?
- Consider all aspects that the change will affect and address them.

Our development team needs to understand the objectives to design you the best solution. It is not necessary to dictate the solution just to define the end result. Try to assume that you are explaining this to a person that doesn't understand any of the processes and are reading about this for the first time. Your scope documents will be supplied to Development through the Project Manager. You may get questions back that need to be answered before we can proceed. You may also get redirection in the plan so that the solution flows better than originally scoped.

## Shared Development

If the custom development requested is deemed to be of enough benefit to other clients, the OPSCOM team may propose a reduced development rate or a shared development plan. In some cases, your account executive will be aware of other clients that may be interested in crowd-sourcing this development.

## Testing

Your completed project will be deployed to your preview (testing) environment after internal testing is complete. We expect you to review the project to ensure you are happy with the way it is functioning and give us the OK to deploy it to Production. We expect that you will do the testing within 2 weeks of the deployment to Preview. If your testing takes longer than that, additional charges can be incurred and you may lose your spot in the schedule.

## Out of Scope Items

Despite best efforts, sometimes something gets overlooked when scoping the project. These items will be considered Out of Scope and may cost additional time and money. Your Account Executive will work with you to develop new scope around these items and a new quote will be issued for the additional work.

# Supported Browsers, Handhelds, and Printers

## <span class="legacy-color-text-default">Supported Browsers</span>

<span class="legacy-color-text-default">OperationsCommander recognizes that our users may use various Internet Browsers when working with our system. We aim for all visitors to have the best possible experience while using OPSCOM, however, we do recognize that it is impossible to develop applications that work identically, efficiently and effectively on all web browsers. We make best efforts to support support the latest versions of Internet Explorer, Firefox, Chrome, and Safari browsers.</span>

## <span class="legacy-color-text-default">Mobile Devices and Tablets</span>

<span class="legacy-color-text-default">This site supports browsing from most Mobile or Tablet devices. Content is sized and displayed based on the screen resolution and other display attributes of your device. </span>

### <span class="legacy-color-text-default">OPSCOM Ionic for iOS &amp; Android - **OPSCOM Enforce**</span>

<span class="legacy-color-text-default">A refreshed and smoother admin enforcement app currently in beta testing with select clients, compatible with both iOS and Android. Not yet feature complete.</span>

[<span class="legacy-color-text-default">More details can be found here.</span>](https://opscom.wiki/books/opscom-enforce-ios-android)

### <span class="legacy-color-text-default">OPSCOM Legacy (Android Only) - **OPSCOM Parking Enforcement**</span>

<span class="legacy-color-text-default">The ViolationAdmin component provides in-field remote data access from mobile devices and smartphones. Using an Android handheld and a Bluetooth printer creating tickets for parking infractions is quick and easy. Site patrols sync enforcement and parking data to the system through cellular or Wi-Fi networks. With this remote technology, the system can apply validation rules moments after a user makes a permit purchase on the cloud-based user portal or connected remote devices.</span>

[<span class="legacy-color-text-default">More details can be found here.</span>](https://opscom.wiki/books/legacy-android-enforcement-app-OPSCOM-parking-enforcement)

### <span data-colorid="gmxla8gklh">Minimum Handheld Requirements</span>

<span class="legacy-color-text-default">Not all Tablets or Mobile devices are supported for use with OPSCOM, as processing power and camera functions may vary. They must have at least the requirements listed below. Before committing to a device for use with OPSCOM, you are encouraged to perform your own testing to ensure you are happy with the perform on your preferred device.</span>

<span class="legacy-color-text-default">OPSCOM no longer supports versions of the Android operating system lower than 7. Clients with devices that do not support at least version 7 will continue to function, however, you will not be able to download this or future versions of OPSCOM. This means you cannot take advantage of new functionality in future releases.</span>

- <span class="legacy-color-text-default">OS Version - Minimum:</span>
    - <span class="legacy-color-text-default">Android, Version 11.0 (Red Velvet; 2020)</span>
    - <span class="legacy-color-text-default">iOS, Version 13.0 or later</span>
- <span class="legacy-color-text-default">Minimum Processing Power - Quadcore: 4X 1.2 GHz</span>
- <span class="legacy-color-text-default">Rear Camera: 8 MP Camera</span>
- <span class="legacy-color-text-default">Autofocus - Yes</span>
- <span class="legacy-color-text-default">LTE/4G and/or Wi-Fi Connectivity <sup>1</sup></span>

<p class="callout warning"><sup>1 </sup>LTE/4G or better is required if connecting with cellular providers and Wi-Fi is not available *(**required** for data sync)*.</p>

#### <span data-colorid="rmuqnxf086">Recommended Tablet Specifications</span>

- Samsung Galaxy Tab Active Pro Tablets with LTE &amp; data plan, 8 or 10"
- Samsung Galaxy Tab A 8 or 10” Tablet with LTE &amp; data plan
- iPad Wi-Fi + Cellular model
- iPad mini Wi-Fi + Cellular model

<p class="callout success">The Galaxy Tab Active Pro typically comes with its own heavy-duty rugged case. iOS tablets usually don’t, though, so keep that in mind—you may want to pick one up yourself!</p>

#### Recommended Cellphones

- Samsung Flagship Cellphones, S20 through S24 (OPSCOM Testing Devices)
- Samsung XCover 4 &amp; data plan
- Any mid-range or better Android phone <sup>2</sup>

<p class="callout warning"><sup>2 </sup>While such devices are generally expected to work, they have not been tested and may display layout irregularities. As such, full functionality cannot be guaranteed.</p>

### Supported Bluetooth Printers

Below is a list of supported Bluetooth printer models. Other models and makes may require custom development to support them. The printer must use 3" printer rolls in order to be compatible with our layout design.

<div class="table-wrap" id="bkmrk-printer-model-info-s"><table class="relative-table wrapped confluenceTable tablesorter tablesorter-default" role="grid"><colgroup><col></col></colgroup><colgroup></colgroup><thead><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Printer Model: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" tabindex="0">Printer Model</th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd">- Star Micronics SM-T300-DB50 3" Portable Printer or equivalent

</td></tr><tr role="row"><td class="confluenceTd"><div class="content-wrapper">- Star Micronics SM-T301-DB50 Portable Printer with Magnetic Stripe Reader or equivalent

</div></td></tr><tr role="row"><td class="confluenceTd">- Zebra ZQ320+ Series Bluetooth Printer No label sensor 
    - Outdoor edition
    - Charger sold separately

</td></tr><tr><td>- Zebra ZQ620+ Series Bluetooth Printer No label sensor 
    - Outdoor edition
    - Charger sold separately

</td></tr><tr role="row"><td class="confluenceTd">- Zebra Charging Accessory Kit sold separately

</td></tr><tr role="row"><td class="confluenceTd">- Zebra In Vehicle Charging Accessory Kit sold separately

</td></tr></tbody></table>

Please provide the models you are interested in purchasing prior to proceeding.  
</div>##### Other Considerations

<div class="table-wrap" id="bkmrk-bluetooth-vs.-wi-fi%3A">- **Bluetooth vs. Wi-Fi:** This depends on your use case. Generally, most clients can opt for the Bluetooth-only version since a Bluetooth-enabled device is used in tandem while patrolling.
- **Linered vs. Linerless:** This functionality determines the printer's ability to support labels with a backing and not just paper. A linered printer supports both, while a linerless printer only supports paper. Most clients only require the linerless version; however, it depends on your use case.

</div>[![image.png](https://opscom.wiki/uploads/images/gallery/2026-03/scaled-1680-/image.png)](https://opscom.wiki/uploads/images/gallery/2026-03/image.png)

<div class="table-wrap" id="bkmrk--1"></div>

# Integrations and Partners

# Integrating with OPSCOM

## <span class="legacy-color-text-blue3">Considerations for Scoping an Integration </span>

<span class="legacy-color-text-blue3">Regardless of the integration we are scoping we need the following questions answered.</span>

1. <span class="legacy-color-text-default">What are the endpoints; where will we connect and send data? </span>
    1. <span class="legacy-color-text-default">What system or URL are we querying?</span>
    2. <span class="legacy-color-text-default">Test system logins and a test endpoint address to which we can send queries to.</span>
        1. <span class="legacy-color-text-default">we will need the same for production systems </span>
2. <span class="legacy-color-text-default">Are there additional (special) API endpoints and/or API tokens to access the system? </span>
3. <span class="legacy-color-text-default">What API/SDK is recommended?</span>
    1. <span class="legacy-color-text-default">at the core the OPSCOM platform is built on PHP; we also work with Java and many other languages</span>
4. <span class="legacy-color-text-default">Supporting documentation for the API/SDKs that we are integrating with</span>
    1. technical contact(s); either on location and/or for the vendor.
5. <span class="legacy-color-text-default">How will the data (or user) flow through the system? ie. business logic/flow</span>

## For Network Administrators

Our development servers are behind:

- 208.124.170.242
- 178.128.233.75

Our production servers are behind:

- 209.217.117.82
- 159.203.14.67

## <span class="inline-comment-marker" data-ref="b8fa4083-47d7-433f-b638-85bc55645de8">Information Flow</span> through OPSCOM

This example shows the flow of information through the integrated system of record and OPSCOM.

[![image.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/bfhimage.png)](https://opscom.wiki/uploads/images/gallery/2024-06/bfhimage.png)

### Sample: SSO Integration

This example shows the flow of a user through the system, and at what points the client wanted us to apply business logic.

Notice that in their implementation they also described the flag that would be used to designate special users in the system.

[![image.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/D7Eimage.png)](https://opscom.wiki/uploads/images/gallery/2024-06/D7Eimage.png)

### Sample: LDAP/Active Directory Integration

This represents a standard flow of information to support LDAP/AD user validation.

[![image.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/eJ9image.png)](https://opscom.wiki/uploads/images/gallery/2024-06/eJ9image.png)

## Current APIs Available

**<span data-colorid="qqf7mq8vfi">Operations</span>**<span class="legacy-color-text-red2">Commander</span><span data-colorid="ylh3whlu13"> </span><span data-colorid="wq2melhhao">(OPSCOM)</span><span class="legacy-color-text-blue3"> has made APIs (Application Programming Interface) available that allow for third-parties with proper authentication to interact and manipulate data in OPSCOM as needed to accomplish specific functions, for example adding valid permits from pay and display machines.</span>

## Other Integrations Available

OPSCOM has integrations with third-parties. Your Sales Rep can discuss how you can make use of these integrations.

- T2 Luke II Meters
- CALE Meters
- MacKay Meters
- Tattile Cameras
- Vaxtor Cameras
- gTechna Cameras
- HotSpot Temporary Permits

# Parking Logix - Parking Sensor Integration

## Enable Parking Logix Integration

Before you can use the Parking Logix integration on your system you will need to navigate to your **Third Party** settings under **System Settings**.

From there you should see the option to enable **Parking Logix Integration**.

[![image.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/nBJimage.png)](https://opscom.wiki/uploads/images/gallery/2024-06/nBJimage.png)

## Adding the Lot Group

<span class="legacy-color-text-blue3">Next, add a new lot group to your system making sure you include the API code. It is possible but unlikely that there will be multiple API keys if lot access is split over several keys. </span>

<span class="legacy-color-text-blue3">Create a specific group for each lot you will be collecting data from.</span>

It's important to note that you will also need to enter the Parking Logix specific name for the lot and it must match exactly.

For example, in the image below, the Parking Logix name is *Mountaineer Garage*.

[![image.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/BZuimage.png)](https://opscom.wiki/uploads/images/gallery/2024-06/BZuimage.png)

Once the Lot Group has been configured you would need to assign it to the lot on the **LPR Settings Tab** of the Lot Administration tool.

[![image.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/eWdimage.png)](https://opscom.wiki/uploads/images/gallery/2024-06/eWdimage.png)

## Enable the System Task

A system task must be enabled for the Parking Logix sensors to communicate with our system.

This must be enabled by OPSCOM integration staff and you can contact us through support to set this up. Please email <support@ops-com.comcom> for assistance.

Once the system task has been run you should see updated on the lot counts under **Manage Parking Lot Groups**

[![image.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/1bximage.png)](https://opscom.wiki/uploads/images/gallery/2024-06/1bximage.png)

## Displaying the Map on the User Side

Finally, enter the short code on the user side to any of your pages using **System Messaging**.

For more information on how system messaging works please see: [https://wiki.OPSCOM.com/x/M4QCAw](https://wiki.OPSCOM.com/x/M4QCAw) followed by **Editing Pages**.

The short code is<span class="legacy-color-text-blue3"> </span>**<span class="error legacy-color-text-blue3">\[parking\_logix\]</span>**<span class="legacy-color-text-blue3"> and you can pass addition parameters such as: *only, show, filter,* or *name.* This will restrict the list to show only specific lots.</span>

[![image.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/QB4image.png)](https://opscom.wiki/uploads/images/gallery/2024-06/QB4image.png)

<span class="legacy-color-text-blue3">By design, it will only show lots that have a group assigned to it that have an API key stored in it.  
</span>

[![image.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/POOimage.png)](https://opscom.wiki/uploads/images/gallery/2024-06/POOimage.png)

<span class="legacy-color-text-blue3">  
</span>

# Mistall - Setup & Functionality

## Overview<span class="heading-anchor-wrapper" role="presentation"><button aria-label="Copy link to heading" class="cc-1r0b9w7" type="button"><span aria-label="Copy" class="cc-1afrefi" role="img"><svg height="24" role="presentation" viewbox="0 0 24 24" width="24"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"></path><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"></path></g></svg></span></button></span>

Mistall is a service that is used to count cars in a physical lot, using cameras to track vehicles as they enter and exit the lot.

Within the OPSCOM system, each Mistall lot is associated to a Lot Group.

## Mistall Credentials<span class="heading-anchor-wrapper" role="presentation"><button aria-label="Copy link to heading" class="cc-1r0b9w7" type="button"><span aria-label="Copy" class="cc-1afrefi" role="img"><svg height="24" role="presentation" viewbox="0 0 24 24" width="24"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"></path><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"></path></g></svg></span></button></span>

Mistall credentials need to be entered in system settings under third-party settings to be able to use the <span data-highlighted="true"><span class="_11q7y4f7 _5pioz8co _189eyh40 _1il9nqa1 _19lc184f _d0altlke acronym-highlight" data-testid="acronym-highlight">API</span></span>.

Credentials are provided to the the client by Mistall itself.

<div class="rich-media-item mediaSingleView-content-wrap image-center cc-1hr1i4h" data-layout="center" data-node-type="mediaSingle" data-renderer-start-pos="419" data-width="700" data-width-type="pixel" id="bkmrk-"><div class="cc-sl6008"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div data-alt="image-20240409-201754.png" data-collection="contentId-69926980" data-context-id="69926980" data-file-mime-type="" data-file-name="file" data-file-size="1" data-height="348" data-id="6445a395-41a6-4055-b67a-9b8c788f97cb" data-node-type="media" data-renderer-start-pos="420" data-type="file" data-width="656">[![1_a2b75cde-54a7-40cb-bb96-6017e67b8f27.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/1-a2b75cde-54a7-40cb-bb96-6017e67b8f27.png)](https://opscom.wiki/uploads/images/gallery/2024-06/1-a2b75cde-54a7-40cb-bb96-6017e67b8f27.png)</div></div></div></div>## Lot Groups<span class="heading-anchor-wrapper" role="presentation"><button aria-label="Copy link to heading" class="cc-1r0b9w7" type="button"><span aria-label="Copy" class="cc-1afrefi" role="img"><svg height="24" role="presentation" viewbox="0 0 24 24" width="24"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"></path><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"></path></g></svg></span></button></span>

The Lot Groups page was updated to accommodate the use of Mistall.

In addition, Lot Groups have replaced the use of Lots on the Real-Time map on both the admin and user sides.

To have data populate the Mistall Lot ID dropdown, the Update Mistall System Job Task must be run at least once to import the data into the system.

Columns have been added for setup with the Real-Time Map and Mistall data. These are the following fields.

- Map color - map icon color
- Latitude and longitude - location on the map, selected by putting a point on the map
- Show on Real-Time map - Select if the group will appear on the real-time map
- Mistall Lot ID - which Mistall lot the Lot Group correlates to (Supplied by Mistall)

<div data-layout-section="true" id="bkmrk-lot-group-page-updat"><div data-column-width="66.66" data-layout-column="true"><div class="cc-1jke4yk"><div class="rich-media-item mediaSingleView-content-wrap image-center cc-y3zgtz" data-layout="center" data-node-type="mediaSingle" data-renderer-start-pos="1091" data-width="760" data-width-type="pixel"><div class="cc-1smov7o"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div>  
</div><div data-alt="" data-collection="contentId-69926980" data-context-id="69926980" data-file-mime-type="" data-file-name="file" data-file-size="1" data-height="728" data-id="31072106-4101-4656-93be-0b10cfec674f" data-node-type="media" data-renderer-start-pos="1092" data-type="file" data-width="1092">  
<table border="1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-style: hidden; height: 361.25px;"><colgroup><col style="width: 70%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 331.953px;"><td style="height: 331.953px;">[![2_b9bfb86f-8e4e-4e2b-b22c-4af7f95ddb47.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/2-b9bfb86f-8e4e-4e2b-b22c-4af7f95ddb47.png)](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/2-b9bfb86f-8e4e-4e2b-b22c-4af7f95ddb47.png)</td><td style="height: 331.953px;">[![3_e390bd38-8778-40de-83da-82d93e374d99.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/3-e390bd38-8778-40de-83da-82d93e374d99.png)](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/3-e390bd38-8778-40de-83da-82d93e374d99.png)</td></tr><tr style="height: 29.2969px;"><td class="align-center" style="height: 29.2969px;">Lot Group page updates.</td><td class="align-center" style="height: 29.2969px;">The updated lot group edit pop-up.</td></tr></tbody></table>

</div></div></div></div></div></div></div><div data-layout-section="true" id="bkmrk--1"><div data-column-width="33.33" data-layout-column="true"><div class="cc-1jke4yk"><div class="rich-media-item mediaSingleView-content-wrap image-center cc-15smn3l" data-layout="center" data-node-type="mediaSingle" data-renderer-start-pos="1125" data-width="258" data-width-type="pixel"><div class="cc-prubcq">  
</div></div></div></div></div>## Lot Edit<span class="heading-anchor-wrapper" role="presentation"><button aria-label="Copy link to heading" class="cc-1r0b9w7" type="button"><span aria-label="Copy" class="cc-1afrefi" role="img"><svg height="24" role="presentation" viewbox="0 0 24 24" width="24"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"></path><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"></path></g></svg></span></button></span>

This group must be associated to the lots you wish to configure for Mistall use. In the lot editor on the General tab, you will find the Lot Group Field. select the associated Lot Group from the drop down.  
  
***Note:** This field to set the lot group has been moved from the <span data-highlighted="true"><span class="_11q7y4f7 _5pioz8co _189eyh40 _1il9nqa1 _19lc184f _d0altlke acronym-highlight" data-testid="acronym-highlight">LPR</span></span> section to this General section. This is to allow clients who are not using the <span data-highlighted="true">LPR</span> system to still use the real-time map features.*

<div class="rich-media-item mediaSingleView-content-wrap image-center cc-g54mhi" data-layout="center" data-node-type="mediaSingle" data-renderer-start-pos="1407" data-width="760" data-width-type="pixel" id="bkmrk-lot-edit-page."><div class="cc-17b8omi"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div data-alt="" data-collection="contentId-69926980" data-context-id="69926980" data-file-mime-type="" data-file-name="file" data-file-size="1" data-height="398" data-id="90ca66b3-bfb7-4cc2-8065-101efee3bebd" data-node-type="media" data-renderer-start-pos="1408" data-type="file" data-width="898">[![4_321d60f9-4185-41c2-bdc7-210377903852.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/4-321d60f9-4185-41c2-bdc7-210377903852.png)](https://opscom.wiki/uploads/images/gallery/2024-06/4-321d60f9-4185-41c2-bdc7-210377903852.png)</div></div></div><div class="cc-1wlpsko align-center" data-media-caption="true" data-renderer-start-pos="1409" data-testid="media-caption">Lot edit page.</div></div>## Dashboard Widget <span class="heading-anchor-wrapper" role="presentation"><button aria-label="Copy link to heading" class="cc-1r0b9w7" type="button"><span aria-label="Copy" class="cc-1afrefi" role="img"><svg height="24" role="presentation" viewbox="0 0 24 24" width="24"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"></path><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"></path></g></svg></span></button></span>

The imported Mistall data can be displayed on the dashboard in a widget.

The widget is named **<span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#4c9aff">mistall-lot-stats</span>**.

If the system setting for **Enable Mistall Usage** is not enabled, this widget will not appear in the edit dashboard page.

The widget shows the raw Mistall data. The names of the lot groups associated to the data will be shown beside the bar chart.

***Note:** If the Mistall data is not yet associated to a lot group, it will show the Mistall lot name instead. This is the name given to the lot by Mistall.*

<div class="rich-media-item mediaSingleView-content-wrap image-center cc-1rmyr6u" data-layout="center" data-node-type="mediaSingle" data-renderer-start-pos="1956" data-width="616" data-width-type="pixel" id="bkmrk-mistall-dashboard-wi"><div class="cc-mnh0x6"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div>  
</div><div data-alt="" data-collection="contentId-69926980" data-context-id="69926980" data-file-mime-type="" data-file-name="file" data-file-size="1" data-height="196" data-id="c5d805da-7dcd-4585-ac7a-73a8230886b7" data-node-type="media" data-renderer-start-pos="1957" data-type="file" data-width="616">[![5_8c58357e-0936-4dcf-aa81-d5f454957d0d.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/5-8c58357e-0936-4dcf-aa81-d5f454957d0d.png)](https://opscom.wiki/uploads/images/gallery/2024-06/5-8c58357e-0936-4dcf-aa81-d5f454957d0d.png)</div></div></div><div class="cc-1wlpsko align-center" data-media-caption="true" data-renderer-start-pos="1958" data-testid="media-caption">Mistall dashboard widget.</div></div># Real-Time Maps<span class="heading-anchor-wrapper" role="presentation"><button aria-label="Copy link to heading" class="cc-1r0b9w7" type="button"><span aria-label="Copy" class="cc-1afrefi" role="img"><svg height="24" role="presentation" viewbox="0 0 24 24" width="24"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"></path><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"></path></g></svg></span></button></span>

The admin and user-side real-time maps have been updated to use lot groups in additional to the individual lots as pins on the map.

**The functionality of the maps is not dependent on the use of Mistall in a system.**

If your system doesn’t have the Mistall integration enabled, the lot groups will use the data of the associated lots in place of Mistall data for the real-time maps.

## Admin-Side Map<span class="heading-anchor-wrapper" role="presentation"><button aria-label="Copy link to heading" class="cc-1r0b9w7" type="button"><span aria-label="Copy" class="cc-1afrefi" role="img"><svg height="24" role="presentation" viewbox="0 0 24 24" width="24"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"></path><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"></path></g></svg></span></button></span>

The admin map has been updated to use lot groups.

When a lot group is clicked on, it will show the new popup.

The donut graph at the top shows the Mistall lot data, and the Lot Info section under that shows the individual lot data. The bar charts below show the same lot info as above broken down by individual lot.

***Note:** If the lot group has no Mistall data associated to it, it will use the collated counts of the lot info below instead.*

If Mistall data is being used for the lot, it is likely it will not match the counts shown in the lot info window below. It is intentional that the information will not match.

The intention is that the client will be able to see the difference between what is physically present in the physical lot (lot group Mistall stats) and what the permits purchased within the system look like in comparison.

For example, if the lot is physically empty but is maxed out on purchased permits, the number of available permits can be increased for that lot.

<div class="rich-media-item mediaSingleView-content-wrap image-center cc-g54mhi" data-layout="center" data-node-type="mediaSingle" data-renderer-start-pos="3342" data-width="760" data-width-type="pixel" id="bkmrk-admin-side-map."><div class="cc-18rf98j"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div>  
</div><div data-alt="" data-collection="contentId-69926980" data-context-id="69926980" data-file-mime-type="" data-file-name="file" data-file-size="1" data-height="546" data-id="cd6c691b-dc3c-4f3b-91c9-b78514aab49e" data-node-type="media" data-renderer-start-pos="3343" data-type="file" data-width="922">[![6_3df4add1-3520-4dd6-89b2-5e4b200b2121.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/6-3df4add1-3520-4dd6-89b2-5e4b200b2121.png)](https://opscom.wiki/uploads/images/gallery/2024-06/6-3df4add1-3520-4dd6-89b2-5e4b200b2121.png)</div></div></div><div class="cc-1wlpsko align-center" data-media-caption="true" data-renderer-start-pos="3344" data-testid="media-caption">Admin-Side map.</div></div>## User-Side Map<span class="heading-anchor-wrapper" role="presentation"><button aria-label="Copy link to heading" class="cc-1r0b9w7" type="button"><span aria-label="Copy" class="cc-1afrefi" role="img"><svg height="24" role="presentation" viewbox="0 0 24 24" width="24"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"></path><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"></path></g></svg></span></button></span>

The user-side map has also been updated to use lot groups.

As before, the user map is made to appear by placing the shortcode on a client-created page.

There are two shortcodes available to use for the real-time map.   
**\[real-time-map\] -** Displays the actual map.  
**\[real-time-legend\] -** Displays a legend explaining the color coding used in the map.

The user-side map will now appear like this:

<div class="rich-media-item mediaSingleView-content-wrap image-center cc-g54mhi" data-layout="center" data-node-type="mediaSingle" data-renderer-start-pos="3628" data-width="760" data-width-type="pixel" id="bkmrk-user-side-real-time-"><div class="cc-chqzg9"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div data-alt="" data-collection="contentId-69926980" data-context-id="69926980" data-file-mime-type="" data-file-name="file" data-file-size="1" data-height="498" data-id="35a7b1d5-5555-4d83-af95-0505e5950b56" data-node-type="media" data-renderer-start-pos="3629" data-type="file" data-width="918">[![7_237b667b-3f62-4b59-a5c5-b71611899abd.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/7-237b667b-3f62-4b59-a5c5-b71611899abd.png)](https://opscom.wiki/uploads/images/gallery/2024-06/7-237b667b-3f62-4b59-a5c5-b71611899abd.png)</div></div></div><div class="cc-1wlpsko align-center" data-media-caption="true" data-renderer-start-pos="3630" data-testid="media-caption">User-side real time map.</div></div>The donut graph at the top shows the Mistall data if it is present. If the lot group does not have an associated Mistall lot, it will show the collated counts of the lot info below.

The lot info shown below the donut graph is from the permit counts in the system.

Unlike the admin-side map, the information here is presented as a percentage instead of the actual numbers. This is to allow for some leeway for any inaccuracy.

The icons to the right display if the lot allows standard or temporary permits.

- Green is standard.
- Yellow is temp.

The map should be accessible for Guest Users who are not logged in. If the user is logged in, they will be able to see standard permits and temp permits, but if they are not logged in, they will only be able to see temp permits.

The book permit button now takes the user to a new page used for selecting a permit from within the selected lot group.

## User-Side Lot Group Page<span class="heading-anchor-wrapper" role="presentation"><button aria-label="Copy link to heading" class="cc-1r0b9w7" type="button"><span aria-label="Copy" class="cc-1afrefi" role="img"><svg height="24" role="presentation" viewbox="0 0 24 24" width="24"><g fill="currentColor" fill-rule="evenodd"><path d="M12.856 5.457l-.937.92a1.002 1.002 0 000 1.437 1.047 1.047 0 001.463 0l.984-.966c.967-.95 2.542-1.135 3.602-.288a2.54 2.54 0 01.203 3.81l-2.903 2.852a2.646 2.646 0 01-3.696 0l-1.11-1.09L9 13.57l1.108 1.089c1.822 1.788 4.802 1.788 6.622 0l2.905-2.852a4.558 4.558 0 00-.357-6.82c-1.893-1.517-4.695-1.226-6.422.47"></path><path d="M11.144 19.543l.937-.92a1.002 1.002 0 000-1.437 1.047 1.047 0 00-1.462 0l-.985.966c-.967.95-2.542 1.135-3.602.288a2.54 2.54 0 01-.203-3.81l2.903-2.852a2.646 2.646 0 013.696 0l1.11 1.09L15 11.43l-1.108-1.089c-1.822-1.788-4.802-1.788-6.622 0l-2.905 2.852a4.558 4.558 0 00.357 6.82c1.893 1.517 4.695 1.226 6.422-.47"></path></g></svg></span></button></span>

The lot group page shows much the same data as the regular permit page, just with the data specific to the selected lot group.

<div class="rich-media-item mediaSingleView-content-wrap image-center cc-g54mhi" data-layout="center" data-node-type="mediaSingle" data-renderer-start-pos="4706" data-width="760" data-width-type="pixel" id="bkmrk-lot-group-page."><div class="cc-1mpcv1m"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div>  
</div><div data-alt="" data-collection="contentId-69926980" data-context-id="69926980" data-file-mime-type="" data-file-name="file" data-file-size="1" data-height="720" data-id="99fcc5b1-5aae-429d-b303-e4339cb00080" data-node-type="media" data-renderer-start-pos="4707" data-type="file" data-width="910">[![8_9a0ff1dd-6a83-4887-ab97-fa26c005c6e8.png](https://opscom.wiki/uploads/images/gallery/2024-06/scaled-1680-/8-9a0ff1dd-6a83-4887-ab97-fa26c005c6e8.png)](https://opscom.wiki/uploads/images/gallery/2024-06/8-9a0ff1dd-6a83-4887-ab97-fa26c005c6e8.png)</div></div></div><div class="cc-1wlpsko align-center" data-media-caption="true" data-renderer-start-pos="4708" data-testid="media-caption">Lot group page.</div></div>At the top of the page, the same donut graph from the pop-up window on the map is shown, displaying a percentage of availability. It is calculated from the Mistall data or the lots below if there is no Mistall data for the lot group.

The lots are shown below. If the user is a guest (not logged in), they will only be able to see temporary permits on the page.

The standard permit booking button will take the user to the regular standard permit booking page, but the temporary permit booking button will take the user to the quick checkout.

This is the checkout used for <span data-highlighted="true"><span class="_11q7y4f7 _5pioz8co _189eyh40 _1il9nqa1 _19lc184f _d0altlke acronym-highlight" data-testid="acronym-highlight">QR</span></span> codes and the old version of the map. It allows the user to purchase the permit and checkout immediately without adding it to their cart.

# Temporary Documentation for the Mistall Pilot

## Overview

Mistall is a service that is used to count cars in a physical lot, using cameras to track vehicles as they enter and exit the lot. Within the OPSCOM system, each Mistall lot is associated to a Lot Group.

## Mistall Credentials

See Support/Development for credentials.

## Mistall System Job Task

- Mistall data is fetched and stored in the system using a system job task.
- The data is fetched from Mistall’s API service using the associated credentials entered in the system settings.
- By default, it is set to run every 10 minutes.

## Lot Groups

The Lot Groups page was updated to accommodate the use of Mistall.

In addition, Lot Groups have replaced the use of Lots on the Real-Time map on both the admin and user sides.

To have data populate the Mistall Lot ID dropdown, the Update Mistall System Job Task must be run at least once to import the data into the system.

Columns have been added for setup with the Real-Time Map and Mistall data.

- Map color - map icon color
- Latitude and longitude - location on the map, selected by putting a point on the map
- Show on map - if the group will appear on the real-time map
- Mistall Lot ID - which Mistall lot the Lot Group correlates to

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/mFYimage.png)![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/HWuimage.png)

<div data-layout-section="true" id="bkmrk-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-"><div data-column-width="66.66" data-layout-column="true"><div class="cc-1jke4yk"><div class="rich-media-item mediaSingleView-content-wrap image-center cc-q1yisp" data-layout="center" data-node-type="mediaSingle" data-renderer-start-pos="1218" data-width="760" data-width-type="pixel"><div class="cc-1yg0fdm"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div data-alt="" data-collection="contentId-39190690" data-context-id="39190690" data-file-mime-type="" data-file-name="file" data-file-size="1" data-height="728" data-id="87fa49a2-2fa8-46c4-bff0-8aa4317cd82e" data-node-type="media" data-renderer-start-pos="1219" data-type="file" data-width="1092"> Lot Group page updates. The updated lot group edit model.  
<div class="new-file-experience-wrapper cc-rizzml" data-testid="media-card-view" id="bkmrk--1"><div class="media-file-card-view cc-z40uwk" data-test-media-name="image-20231124-203055.png" data-test-progress="1" data-test-source="remote" data-test-status="complete" data-testid="media-file-card-view">![](blob:https://OPSCOM.atlassian.net/eaba9458-b1a6-4340-a468-cf9362009ec5#media-blob-url=true&id=87fa49a2-2fa8-46c4-bff0-8aa4317cd82e&collection=contentId-39190690&contextId=39190690&mimeType=image%2Fpng&name=image-20231124-203055.png&size=84975&width=1092&height=728&alt=)</div></div></div></div><div class="media-file-card-view cc-z40uwk" data-test-media-name="image-20231124-203055.png" data-test-progress="1" data-test-source="remote" data-test-status="complete" data-testid="media-file-card-view">  
</div></div></div></div></div></div>## Lot Edit

On the lot edit page, the selection to set the lot group of the lot has been moved from the LPR section to the general section.

This is to allow clients who are not using the LPR system to still use the real-time map features.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/HVwimage.png)

 Lot edit page.

## Dashboard Widget

The imported Mistall data can be displayed on the dashboard in a widget.

The widget is named **<span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#4c9aff">mistall-lot-stats</span>**.

If the system setting for **Enable Mistall Usage** is not enabled, this widget will not appear in the edit dashboard page.

The widget shows the raw Mistall data. The names of the lot groups associated to the data will be shown beside the bar chart.

If the Mistall data is not yet associated to a lot group, it will show the Mistall lot name instead. This is the name given to the lot by Mistall.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/ASmimage.png)

 Mistall dashboard widget.

# Real-Time Maps

The admin and user-side real-time maps have been updated to use lot groups instead of individual lots as pins on the map.

**The functionality of the maps is not dependant on the use of Mistall in a system.**

If the client does not have Mistall integrated with their site, the lot groups will use the data of the associated lots in place of Mistall data for the real-time maps.

## Admin-Side Map

The admin map has been updated to use lot groups.

When a lot group is clicked on, it will show the new popup.

The donut menu at the top shows the Mistall lot data, and the lot info shows the individual lot data. The bar charts below show the same lot info as above.

If the lot group has no Mistall data associated to it, it will use the collated counts of the lot info below instead.

If Mistall data is being used for the lot, it is likely it will not match the counts shown in the lot info window below. It is intentional that the information will not match.

The intention is that the client will be able to see the difference between what is physically present in the physical lot (lot group Mistall stats) and what the permits purchased within the system look like in comparison.

For example, if the lot is physically empty but is maxed out on purchased permits, the number of available permits can be increased for that lot.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/INIimage.png)

 Admin-Side map.

## User-Side Map

The user-side map has also been updated to use lot groups.

As before, the user map is made to appear by placing the shortcode on a client-created page.

The shortcode for the map is: **<span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#4c9aff">\[real-time-map\]</span>**

The user-side map will now appear like this:

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/PITimage.png)

 User-side real time map.

The donut at the top shows the Mistall data if it is present. If the lot group does not have an associated Mistall lot, it will show the collated counts of the lot info below.

The lot info shown below the donut graph is from the permit counts in the system.

Unlike the admin-side map, the information here is presented as a percentage instead of the actual numbers. This is to allow for some leeway for any inaccuracy.

The icons to the right display if the lot allows standard or temporary permits.

- Green is standard.
- Yellow is temp.

The map should be accessible for users who are not logged in. If the user is logged in, they will be able to see standard permits and temp permits, but if they are not logged in, they will only be able to see temp permits.

The book permit button now takes the user to a new page used for selecting a permit from within the selected lot group.

## User-Side Lot Group Page

The lot group page shows much the same data as the regular permit page, just with the data specific to the selected lot group.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/Ln3image.png)

 Lot group page.

At the top of the page, the same donut menu from the pop-up window on the map is shown, displaying a percentage of availability. It is calculated from the Mistall data or the lots below if there is no Mistall data for the lot group.

The lots are shown below. If the user is a guest (not logged in), they will only be able to see temporary permits on the page.

The standard permit booking button will take the user to the regular standard permit booking page, but the temporary permit booking button will take the user to the quick checkout.

This is the checkout used for QR codes and the old version of the map. It allows the user to purchase the permit and checkout immediately without adding it to their cart.

# Hotspot - Permits Integration

To configure a lot to work with the HotSpot app, you must configure a zone for any lot where you want this service to be available. Once a zone is associated with a lot or multiple lots, any user purchasing a permit through HotSpot would be valid in all lots associated with the that zone which is configured in Lot Administration. This article will illustrate how to create the zone and apply it to a lot.

## Setting up a HotSpot zone

To begin you must set up the zone under **Admin Options**. Hover over the **Parking** menu item and select **Lot Zones** from the drop down list.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/image.png)

In the **Manage Lot Zones** screen click on **Add** to access the add zone form

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/qPKimage.png)

Enter the name of the lot zone you wish to add. In our example the lot zone is **1001**

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/wNYimage.png)

Once you have the zone name entered, click on **Add Zone** to save your selection. It will now show up in the drop down list of zones.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/dbSimage.png)

## Applying a Zone to a Lot

To apply this zone to a lot, you first need to go into **Lot Administration** to add the zone to your selected lots.  
To access the lots, go to the **Parking Management** menu and hover over **Lot Administration**. Select **Pricing and Admin** from the resulting drop down menu.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/9VWimage.png)

In our example we will add this zone to the lot called **Green Staff Lot East**. Click on the **lot name** to access the configuration tool.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/wluimage.png)

Once in **Lot Administration** for the specific lot, click on the **Zones &amp; Location** tab to access the zone configuration section.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/pUdimage.png)

In the **Zones &amp; Location** tab click on **Add Zone by Days** to select the **1001** zone we created.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/UGPimage.png)

Select **1001** from the resulting drop down list.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/ddFimage.png)

For our example we can leave the defaults as is which includes:

The day range - leave it with all days of the week selected. (Highlighted in green)  
The Start and End Time. (00:00 to 23:59 - in other words all day)  
  
To save your settings click on the **floppy disk (save) icon**.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/G0Aimage.png)

Click on **Update this Lot** to save your changes.

# ParkMobile - Permits API Integration

# Introduction

ParkMobile is a service that offers on-demand parking payments, similar to HotSpot.

A system task is run at regular intervals to retrieve permits from the ParkMobile API, which are then stored in the local site as temporary permits.

# Authorization Credentials

ParkMobile has a set of credentials that must be entered before data can be retrieved from their API.

These can be entered on the system settings page, which can be found under the menu tree:

- **System Configuration → System Setting**![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/NjYimage.png)
    
    ## ParkMobile System Settings
    
    Before the system task can be run and allowed access to the ParkMobile API, the proper API credentials must be entered in the relevant system settings, found under third-party settings.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/OBXimage.png)

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/MwRimage.png)

## Required Credentials

There are three values that must be provided for the system to be allowed access to the ParkMobile endpoint.

These values should be provided to the client by ParkMobile itself.

- API Username
- API Password
- X-API-Key

# Lot Zone Setup

Permits will only be imported into the OPSCOM system if the ParkMobile lot zone has a corresponding lot zone with the same name in the OPSCOM system.

If the local lot zone does not already exist for the ParkMobile lot zone, one will need to be created.

The lot zone management page can be found under the menu tree:

- **System Configuration → Parking → Manage Lot Zones**![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/1WMimage.png)

## Lot Zone Management

To create a new lot zone, click on the **<span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#008da6">Add Lot Zone</span>** button to open the add new modal.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/4Ydimage.png)

This will open the modal used to add new lot zones.

Add the ParkMobile lot zone name as the Name of the lot zone, and then click save changes.

This will add the new lot zone to the system, which can now be used to match to ParkMobile permits coming into the system.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/Jrmimage.png)

## System Task

The ParkMobile system task is used to fetch permits from the ParkMobile endpoint and add them to the OPSCOM system as temporary permits.

System tasks can be be found under the menu tree:

- **Tools → View System Task Logs**![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/L6Rimage.png)

## System Tasks Page

The system task is named Fetch ParkMobile Stats.

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/dTBimage.png)

The task must be enabled before it will run.

By default, it is set to run every 3 minutes.

The task can also be run manually by pressing the **<span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#0747a6">RUN</span>** button next to the task name.

# Imported Permits

ParkMobile permits are imported as paystation (Cale) records, and will appear anywhere these records are used.

They can be viewed using the Pay Station Status page, which can be found under the menu tree:

<div class="rich-media-item mediaSingleView-content-wrap image-wide cc-9mq51q" data-layout="wide" data-node-type="mediaSingle" data-renderer-start-pos="2146" data-width="900" data-width-type="pixel" id="bkmrk-parking-management-%E2%86%92"><div class="cc-178yel5"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div>- **Parking Management → Temporary Permits → Pay Station Status**![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/86Zimage.png)

</div></div></div></div>## Pay Station Status

<div class="rich-media-item mediaSingleView-content-wrap image-wide cc-9mq51q" data-layout="wide" data-node-type="mediaSingle" data-renderer-start-pos="2146" data-width="900" data-width-type="pixel" id="bkmrk-on-the-pay-station-s"><div class="cc-178yel5"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div>On the pay station status page, enter the search information and press the search button.</div><div>  
</div></div></div></div>![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/Zp6image.png)

<div class="rich-media-item mediaSingleView-content-wrap image-wide cc-9mq51q" data-layout="wide" data-node-type="mediaSingle" data-renderer-start-pos="2146" data-width="900" data-width-type="pixel" id="bkmrk-any-imported-parkmob"><div class="cc-178yel5"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div>Any imported ParkMobile permits will be visible in the output results, marked by ParkMobile as the value listed in the Source column.</div><div>  
</div></div></div></div>![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/UJiimage.png)

<div class="rich-media-item mediaSingleView-content-wrap image-wide cc-9mq51q" data-layout="wide" data-node-type="mediaSingle" data-renderer-start-pos="2146" data-width="900" data-width-type="pixel" id="bkmrk--6"><div class="cc-178yel5"><div class="cc-k4ngfq" data-color="#091e4224" data-mark-type="border" data-size="2"><div>  
</div><div class=" cc-19r2z9c" contenteditable="false" data-media-badges="true" data-testid="media-badges">  
</div><div data-alt="image-20240510-192634.png" data-collection="contentId-84181421" data-context-id="84181421" data-file-mime-type="" data-file-name="file" data-file-size="1" data-height="710" data-id="19869f4b-7f3b-425c-9899-05459752e57c" data-node-type="media" data-renderer-start-pos="2147" data-type="file" data-width="1212">  
</div></div></div></div>

# Sending Email with OPSCOM

<p class="callout info">Sending email from OPSCOM is a key element of communicating with your clients. This communication may be outgoing messages related to purchases, notifications and even as part of the appeals process. These are important messages and you want them to get to your clients quickly, securely and without ending up in spam. This guide offers information on setting up your domain with our preferred mail partner, [Mailgun](https://www.mailgun.com/), to ensure your messages are delivered effectively.   
  
<span data-colorid="fnmnfeunwt">We selected Mailgun as our preferred email partner due to the ease of use of their APIs and their long standing success in the email space. That together with their tools to track and report on sent emails made them an ideal candidate for email management.</span>  
</p>

### Why is this so important?

When you send emails from a properly configured domain, internet service providers (ISPs) can confirm that you are a legitimate sender. This process, which relies on DNS records like SPF and DKIM, ensures your emails are not marked as spam. Using your own domain also projects a professional image and builds trust with your clients, as the emails will appear to come from a trusted source (e.g., `parking@yourdomain.com`).

Without this setup, emails sent from a non-`yourdomain.com` system may be marked as spam or carry an "on behalf of" header, which can make your brand appear less credible.

##### <span style="text-decoration: underline;">Why Do I See On Behalf Of in My Email</span>

Visit [https://help.mailgun.com/hc/en-us/articles/360012491394-Why-Do-I-See-On-Behalf-Of-in-My-Email-](https://help.mailgun.com/hc/en-us/articles/360012491394-Why-Do-I-See-On-Behalf-Of-in-My-Email-) for more information

### Setup Options for Your Organization

OPSCOM offers a few different ways to configure your email sending with Mailgun. The recommended method is to allow our team to manage this for you, which ensures the best support and easiest setup.

##### <span style="text-decoration: underline;">Recommended: Configuring Your SubDomain on the OPSCOM Mailgun Account</span>

This method is the preferred option as it allows our support team to monitor email deliverability, track issues, and provide direct technical support for your email-sending needs. It simplifies the process for you while giving us the necessary access to ensure everything is working correctly.

<p class="callout warning">You will need your IT team to support you through this process.</p>

**<span style="text-decoration: underline;">Part 1: Your Role (Client)</span>**

1. Inform the OPSCOM team of the domain you want to use for email sending (e.g. yourdomain.com).
2. Our team will add your domain to our Mailgun account. We will then provide you with the specific DNS records you must add to your domain's settings.

These records will include:

<table border="1" id="bkmrk-type-hostname-value-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 7.27056%;"></col><col style="width: 33.6114%;"></col><col style="width: 35.6432%;"></col><col style="width: 23.4748%;"></col></colgroup><tbody><tr><td>**Type**  
</td><td>**Hostname**  
</td><td>**Value**  
</td><td>**Notes**  
</td></tr><tr><td>TXT</td><td>**opscom**.&lt;your\_domain&gt;</td><td class="confluenceTd"><span data-colorid="iz6fepnon8">v=spf1 include:mailgun.org ~all</span></td><td>add an SPF for Mailgun</td></tr><tr><td>TXT</td><td>**smtp.\_domainkey<span data-colorid="n4yrqsernc">.opscom.&lt;</span>**<span data-colorid="x4ell9pxt8">your\_domain&gt;</span></td><td>generated DKIM key </td><td>DKIM key used with Mailgun</td></tr></tbody></table>

Above are the sending configuration items. ***They represent the absolute minimum to send email.***

***NOTE:** Other DNS configuration items can also be updated to help with bounced email and tracking. We will supply these details during configuration.*

<span style="text-decoration: underline;">**Part 2: Your Role (Client)**</span>

1. Log in to your domain registrar: Log in to the service where you manage your domain's DNS settings (e.g., GoDaddy, Namecheap, Cloudflare, etc.).
2. Add the records from OPSCOM: Find the section for managing DNS records (it might be called "DNS Management" or "Zone File Editor"). You must create a new record for each of the entries we provided. 
    - Record Type: Select the record type (e.g., TXT, MX, CNAME).
    - Hostname/Name: Paste the "Hostname" or "Name" value we provided.
    - Value/Data: Paste the "Value" or "Data" value we provided.
3. Inform OPSCOM: Once you have added all the records, please notify our support team. We will verify the DNS records from our end. When they are correct, Mailgun will show a "verified" status.

<p class="callout info">**Note:** Mailgun also recommends adding other records for email tracking, but these are not required for this specific setup with OPSCOM.</p>

##### <span style="text-decoration: underline;">Option 2: Using Your Own Mailgun Account</span>

This method is for clients who wish to have full control over their own Mailgun account. This can be beneficial if you have other systems that use Mailgun and you want to consolidate them.

1. Create a Mailgun Account: Go to the Mailgun website and create a new account.
2. Add and Verify Your Domain: Follow Mailgun's instructions to add your domain and verify it by updating your DNS records.
3. **Find the API Key:** Once your domain is verified, find your **Private API Key** in the **API Security** section of your Mailgun dashboard.
4. **Send to Support:** Send your Private API Key to <support@ops-com.com>.
5. **Enable Support Access (Recommended):** To allow our team to provide technical support, we highly recommend inviting <support@ops-com.com> as a Developer-level user to your Mailgun account.
6. On the **Admin portal**, hover over **System Configuration** and click **System Settings.**
7. Click the **Third Party** tab.
8. Add your Mailgun domain and Private API key in the settings.

##### <span style="text-decoration: underline;">Option 3: Simple SPF Security (Basic Setup)</span>

Add the following<span data-colorid="agei2dptcb"> to your SPF record (in DNS) to allow OPSCOM servers to send email on your domains behalf.</span>

<span data-colorid="agei2dptcb">`include:_spf.mailgun.org `</span>

Please note that this is only first line generalized security. For more details click here: [https://www.dmarcanalyzer.com/spf/](https://www.dmarcanalyzer.com/spf/)

<div _ngcontent-ng-c2089321376="" class="chat-history-scroll-container" id="bkmrk-"><div _ngcontent-ng-c2089321376="" class="conversation-container message-actions-hover-boundary ng-star-inserted"><div _ngcontent-ng-c256370825=""><div _ngcontent-ng-c2729549742="" class="response-container ng-tns-c2729549742-41 response-container-with-gpi ng-star-inserted response-container-has-multiple-responses" jslog="173900;track:impression,attention"><div _ngcontent-ng-c2729549742="" class="presented-response-container ng-tns-c2729549742-41"><div _ngcontent-ng-c2729549742="" class="response-container-content ng-tns-c2729549742-41"><div _ngcontent-ng-c256370825="" class="response-content ng-tns-c2729549742-41"><div _ngcontent-ng-c1146167435="" class="markdown markdown-main-panel enable-updated-hr-color" dir="ltr">  
</div></div></div></div></div></div></div></div>

# Managed User Import (SFTP)

<p class="callout info">For clients that cannot take advantage of our User Import APIs, our SFTP Managed User Import allows you to import users into our system through an encrypted SFTP client. Any users that have failed to be imported will be put into a .csv file and sent to you by email. This file will include important user information as well as the reason for failure.   
  
Note - This is a paid process you must contact OPSCOM to see if this is included in your service.</p>

### Required System Settings

Before you can use the Managed User Import you will need to have it set up on your system.

1. Hover over **System Configuration** and click **System Settings**.
2. On the General System Settings tab, locate the **Reply-to Admin Email Address** in the **System Emails section.** This is the system default email address that appears as the sender of system-level and task-automation email messages.
3. Click Save Settings.
4. Next, click the **Third Party** tab, and locate the **CSV User Import** section.
5. Enter an email address in the **Failed Import Email** box. This is the email that will be notified in the case of a failed import. Any failed file will include information about the user as well as why the user failed to be imported. This will allow you to correct any failures and attempt the import again.
6. OPSCOM will supply you with credentials to connect your SFTP client to the folder where the import file will be stored on the server. If you connect with a standard client, you will see an empty directory where you can drag and drop your import files.

### Importing Users

##### <span style="text-decoration: underline;">SFTP Manual Process</span>

OPSCOM will enable a system task to run at 5 minute intervals. There may be a pause of up to 5 minutes for the import process to complete.

1\. To begin drop a comma separated (CSV) file from your computer to the server.

<p class="callout warning">Please note that the **your CSV file must follow the required format** to be processed correctly. Refer to<span style="color: rgb(35, 111, 161);"> **[this wiki article](https://opscom.wiki/books/api-documentation/page/push-api-user-createupdate)** </span>to find the exact syntax for the column headers you want to use. You will find this in the **Request Object Attributes** section. The column headers must match the exact value in the **PossibleNames** column or it will fail. </p>

![image.png](https://opscom.wiki/uploads/images/gallery/2024-10/scaled-1680-/T2Qimage.png)

2\. Once completed the file will be automatically moved to the .**bak** folder. This folder is created as part of the import process if the folder does not exist.

3\. An email will be generated containing users that failed the import, and it will be sent to the email in **System Settings**. The email will describe the reasons that users failed the import.

# Server IP Addresses

Depending on various client project requirements you or your I.T. department may require server IP addresses.

For example, there may be IP restrictions or traffic routing requirements where an IP address is required.

<span style="color: rgb(0, 0, 0);">The IPs listed here are egress traffic.</span>

## Development, Testing and Preview

For development and preview sites, traffic will originate from one of these IP addresses.

**208.124.170.242**

**178.128.233.75**

**134.122.33.16**

**137.184.172.18**

**137.184.172.19**

## Production, Staging and Beta

For production and staging sites, traffic will originate from one of these IP addresses.

**209.217.117.82**

**209.217.117.84**

**209.217.117.88**

**159.203.14.67**

**167.99.176.52**

**167.99.176.218**

## <span class="legacy-color-text-default">SPF Records for Email</span>

<span class="legacy-color-text-default">Tomahawk mail servers and Mailgun mail service are used for email delivery.</span>

<span class="legacy-color-text-default">Tomahawk mail services are being phased out and replaced with Mailgun services</span>

<span class="legacy-color-text-default">The following is a sample TXT record from DNS.</span>

<span class="legacy-color-text-default"> "v=spf1 include:spf.tomahawk.ca include:mailgun.org ~all"</span>

# Boot Management and Self-Release System

<p class="callout info">This article provides a comprehensive overview of the Boot Management and Self-Release System. This feature allows enforcement officers to apply a physical boot to a vehicle and enables the vehicle owner to pay their violation(s) and receive a release code via email to remove the boot themselves.</p>

The self-release boot system is designed to increase operational efficiency, reduce administrative and labor costs, and provide a more convenient resolution process for end-users.

<iframe allowfullscreen="allowfullscreen" class=" align-center" height="314" src="https://www.youtube.com/embed/eT75qxOR9nk" width="560"></iframe>

### Setup and Configuration

To use the boot management system, an administrator must first enable and configure several settings within the admin portal.

##### <span style="text-decoration: underline;">System-Wide Settings</span>

- Go to **System Configuration**, then **System Settings**.
- Locate the **Third Party** section.
- Enable the **Universal Boot Enabled** checkbox to turn the entire feature on.
- Configure the **Require Overdue Paid** checkbox. You can choose to require a user to pay only the violation associated with the boot **(Disabled)** or pay all overdue violations on their account **(Enabled)** before the release code is sent. This setting is deployed Off by default.

##### <span style="text-decoration: underline;">Boot Inventory Setup</span>

You must create an inventory of your physical boots before they can be assigned to violations.

- Go to **System Configuration**, then **Violations**, and click on **Setup Boot Devices**.
- Click **+** in the top right to **Add Booting Device**.
- Enter a descriptive Name (e.g., "**Red Boot 01**") and the corresponding **Boot Release Code**.
- Click **Save**. Repeat for all boots in your inventory. You can edit the name and release code value here at any time.

<p class="callout info">Editing the **Release Code** value will only change the code that is stored in OPSCOM and sent to user for boot release. It must be obtained from the booting device's instructions *first* and updated as necessary.</p>

##### <span style="text-decoration: underline;">Violation Type Configuration</span>

You must specify which violation types are eligible for booting.

- Go to Violations, and click Offence Items.
- Select the specific offence type you wish to make eligible for booting.
- Enable the **Apply Boot** checkbox where required.

<p class="callout info"><span style="background-color: rgb(211, 239, 255); color: rgb(1, 70, 108);">The option to apply a boot on a violation will only appear if an offence item, with the Apply Boot flag enabled, is added to the violation.   
Apply Boot should only be enabled on a single offence item dedicated to applying a boot. Do not enable it on a regular offence item.  
When a boot is returned, the fine amount of all offence items on the current violation, with the Apply Boot flag, will be included in the deposit refund.   
The Apply Discount setting will be greyed out when Apply Boot is enabled to prevent calculation errors, as the boot refund does not consider discounts in its calculation.</span></p>

- Click Save. When this offence type is selected during violation entry, the option to assign a boot will now appear.

##### <span style="text-decoration: underline;">Email Template Customization</span>

The email containing the release code and instructions is customizable.

- Go to **System Configuration**, then **Content and Design**, and click **Email Templates**.
- Locate and select the **Boot Release** email template.
- Customize the content to include specific instructions for how the user should remove the boot and ***where they should return it**.*
- Click Save.

### Using this Feature

This section details the daily operational use of the boot management system, from issuing a booted violation to managing the boot's return.

##### <span style="text-decoration: underline;">Issuing a Booted Violation</span>

When issuing a violation for a boot-eligible offense, both on the handheld device and in the admin portal, the officer will see a new option.

- During the violation entry process, select the ticket type **Boot Applied**
- A dropdown called field, **Apply Boot**, will appear.
- From the dropdown menu, select the boot being applied to the vehicle. The list will show available boots first.
- Complete and save the violation as usual. The system now logs that the selected boot is In Use and linked to this violation.

<p class="callout warning">You MUST make sure you **do not assign an occupied boot to another vehicle.** If no boots are marked as ***Available***, the list will start with a title saying either ***Released*** or ***Issued***. **Issued** boots are currently occupied, while **Released** means that the code was sent to the user and payment received for the violation, but **the boot hasn't necessarily been returned**.</p>

### The User Payment and Release Process

Once a vehicle is booted, the user must pay the required violation(s) to receive the release code.

- The user can pay via the online portal, either by logging into their account or using the [Guest Payment option](https://opscom.wiki/books/OPSCOM-user-portal/page/quick-easy-guest-payments).
- When a violation with an associated boot is in the payment cart, a boot icon will be displayed next to it.
- Upon successful payment, the system automatically sends the Boot Release Email to the user's provided email address. This email contains the release code and return instructions you configured in the template.

<p class="callout warning">A valid email address is mandatory to complete the payment. Logged-in users must have an email on file, and guest users will be required to enter one before checkout. (They do not need an account)</p>

### Boot Device Report

This report is your central hub for tracking the status of all your boots. To access it, go to **Violations**, and and click **Universal Boot Devices.**

##### <span style="text-decoration: underline;">Key Information Displayed</span>

- **Boot Identifier**: The name of the boot.
- **Violation Ticket Number**: The linked violation.
- **Status**: The current status of the boot (In Use, Released/Not Returned, or Returned).
- **Date Created**: When the boot was assigned to the violation.

And if applicable;

- **Date Released:** When the payment was made and the code was sent.
- **Date Returned:** When an admin marked the boot as physically returned.

##### <span style="text-decoration: underline;">Available Actions</span>

From the report, administrators can perform key actions:

- **Mark as Returned**: When a user returns a boot, locate it in the report and click **Edit** button, and select **Return** from the *status* dropdown. This updates the boot's status to Returned, making it available for reuse.
- **Manage Deposit Refund**: If the boot was issued with a deposit, you will have an option to Process Refund when marking the boot as returned. This initiates the standard refund process for the deposit amount.
- **For example,** you may choose NOT to issue the refund of the boot deposit, if the boot is damaged, or was not returned in satisfactory condition.

---

### <span style="color: rgb(22, 145, 121);">Best Practices and Considerations</span>

- <span style="color: rgb(22, 145, 121);">Develop a Business Rule for Non-Returns: It's crucial to establish a clear policy for handling boots that are not returned. This may involve applying additional fines or fees to the user's account after a specified period.</span>
- <span style="color: rgb(22, 145, 121);">Consider using the Boot as a Deposit functionality for high-risk situations. By adding a separate, refundable fee item to the violation, you create a financial incentive for the user to return the equipment promptly. </span>
- <span style="color: rgb(22, 145, 121);">Keep Inventory Accurate: Regularly audit your physical boots against the Boot Management Report to ensure all information, especially release codes and statuses, is correct.</span>
- <span style="color: rgb(22, 145, 121);">Clear Email Instructions: Ensure your Boot Release Email template provides simple, clear, and comprehensive instructions. Including photos or diagrams of the boot removal process and a map to the drop-off location can greatly improve the user experience and increase return rates.</span>

# PeopleSoft Integration for Payments and Holds

<p class="callout info">This article outlines the OPSCOM **integration process with PeopleSoft**, designed for administrators at organizations using PeopleSoft for student and staff account management. The integration uses a scheduled SFTP data transfer to place or release account holds in PeopleSoft based on outstanding violation balances recorded in OPSCOM. This ensures that parking enforcement actions are reflected in the central institutional system.</p>

### Setup &amp; Configuration

<p class="callout warning">If you want to use people soft integration, **you must contact [OPSCOM Support](mailto:support@ops-com.comcom)** and have them enable a setting for you on your system before you start. Once completed, continue with the steps below.</p>

Peoplesoft Reports are sent by email on a regularly scheduled basis, so for this feature to work you will need to decide on an email address that will be used and monitored for PeopleSoft Holds reporting, then the System Task will need to be enabled to run automatically.

- Go to **System Configuration**, and click **System Settings**.
- Click on the tab labeled **Third Party**
- Scroll to the bottom, and under **PeopleSoft Holds**, enter an email address in the box for **PeopleSoft Holds Notification Email**
- Then navigate to the **Tools** menu, and click on **View System Task Logs**. Find PeopleSoft Holds Report and click on the checkbox to Enabled. Your report will run immediately and then schedule for the next frequency.

<p class="callout warning">The **PeopleSoft** report is delivered by email, so this is required for functionality.</p>

The integration is an automated process that ***requires*** initial setup and **coordination between your organization and the OPSCOM support team**. The primary components are data mapping, and scheduling.

1. **Initial Consultation &amp; Data Mapping** The first step is to define the data fields for the export. The standard process pushes key details required by PeopleSoft to create and manage holds. Common fields include:
    
    
    - Student/Staff ID
    - Total Amount Owed
    - User Type (Student, Staff, etc.)
    - Violation Type
    - Violation Date
2. **File Structure and Scheduling** The integration relies on two distinct files, which are generated and delivered on a mutually agreed-upon schedule (e.g., nightly).
    
    
    - **Holds Added File:** This file contains a list of all users with a new or updated outstanding balance. The amount provided is the final total owed and is intended to overwrite any existing hold value in PeopleSoft.
    - **Holds Released File:** This file contains a list of all users whose outstanding balance has been cleared ($0.00). This file signals PeopleSoft to release the account hold.
3. **Testing and Verification** Before going live, the OPSCOM team can provide a test account and sample data files. This allows your IT team to schedule testing, verify record uploads, and ensure the data mapping is correct within your PeopleSoft environment.

### Using this Feature

Once configured, the PeopleSoft integration is a fully automated background process that requires no daily intervention from an administrator.

##### <span style="text-decoration: underline;">How it Works</span>

- On the configured schedule, OPSCOM generates the **Holds Added** and **Holds Released** files based on real-time user account data.
- These files are automatically filed, and emailed to the designated email address configured earlier, in settings. The filename can be customized, but the field structure and file type (e.g., tab-separated `.txt`) must remain consistent.
- Your internal **PeopleSoft** system must be configured to automatically retrieve and process these files from the emails, to update the account holds accordingly.
- You can configure the body of the **PeopleSoft** reporting email under; 
    - Go to **System Configuration**, then **Content and Designs**, and click on **Email Templates**
    - Select the template labeled **PeopleSoft Holds Report**

---

### <span style="color: rgb(22, 145, 121);">Best Practices &amp; Considerations</span>

- <span style="color: rgb(22, 145, 121);">**Keep the System of Record Clear.** **The financial debt should remain exclusively within OPSCOM.** The integration's purpose is only to share an *indicator* of the debt with PeopleSoft to manage holds. This strategy eliminates the risk of fees being paid in two different systems and simplifies reconciliation.</span>
- <span style="color: rgb(22, 145, 121);">**Establish a Consistent Schedule.** While the report schedule can be customized (e.g., daily, weekly), a daily overnight process is recommended to ensure holds are applied and released in a timely manner.</span>
- <span style="color: rgb(22, 145, 121);">**Coordinate with your IT Team.** Successful implementation requires collaboration with your organization's PeopleSoft administrators to ensure files are processed correctly on your end.</span>
- <span style="color: rgb(22, 145, 121);">**Understand Hold Triggers.** The integration is typically configured for violation-related debts only. Any unpaid violation, regardless of the amount, will result in a user being included in the **Holds Added** file.</span>