FAQ
When can I buy it?
Soon. Bored Scanner is finishing testing before it goes to the App Store.
Does it work with my asset system?
Snipe-IT today, plus Local CSV for any spreadsheet. Oomnitza support is in testing now. Other asset systems are added on request. Tell us which one you use.
Can I use it without Oomnitza or Snipe-IT?
Yes. Pick Local CSV and Inventory saves each checked scan to a CSV file on the device. Export it by AirDrop, Mail or Files and open it in your spreadsheet. Assign, Lookup and Retire switch on when you connect Oomnitza or Snipe-IT, at no extra cost.
iPhone or iPad?
Either. One app runs on both.
Does it read every manufacturer's labels?
Apple's labels are built in. For anything else, add a label profile: tell it what the serial and MAC lines are called on that label, and it looks for those. Whatever it isn't sure of is flagged for you to check.
Where do employee names come from?
From your asset system's own user list, using the same connection and API token. There's no separate Google, Okta or HR login in Bored Scanner. Sync those into Oomnitza or Snipe-IT and they show up.
Does Retire wipe the device?
No. Retire marks the asset retired in your asset system and keeps its record. Wiping and disposal stay with your MDM and your recycler.
Is there a subscription, ever?
No. 99¢ buys the app. Updates are free.
Guides
Step-by-step setup guides for Oomnitza and Snipe-IT will be published here with the App Store release. Until then, the MDM section below lists every setting an admin can push.
- boredscanner.spaceWhat it does, who it's for, screenshots.
- Privacy policyWhat stays on the device, what goes to your asset system.
MDM configuration
Set it up once. Send the same settings to every managed iPhone or iPad.
- Bundle ID
com.dmarcantonio.BoredScanner- Format
- Standard Apple Managed App Configuration (AppConfig), from an MDM such as Jamf or Kandji. Managed settings take priority over local settings and appear locked in the app.
Keys
| Key | Type | What it does |
|---|---|---|
BoredScannerConfiguration | JSON string | Destinations, mappings, new-asset defaults and lifecycle settings |
BoredScannerToken_<destination-id> | String | API token for that destination |
BoredScannerCaptureProfiles | JSON string | Capture profiles, field switches and initial profile |
BoredScannerLocalCSVEnabled | Boolean | Enable or disable local CSV saving and export |
Use a real Boolean, not the string "true". Merge entries into the complete app configuration, preserving existing destination and token keys.
Sample configuration (Snipe-IT)
This example preconfigures a Snipe-IT connection, selects Apple as the initial capture profile, turns off Bluetooth MAC capture, and turns off local CSV saving and export. Managed settings appear locked in the app.
Paste the whole dictionary into the app's configuration editor: App Configuration in Jamf Pro, or Set app configuration for the app in Kandji. It's an AppConfig dictionary, not a standalone .mobileconfig profile. Don't nest it inside a com.apple.configuration.managed key. Download the sample (XML).
<dict>
<key>BoredScannerConfiguration</key>
<string>{
"schemaVersion": 1,
"destinations": [{
"id": "company-snipeit",
"name": "Company inventory",
"provider": "snipe-it",
"baseURL": "https://REPLACE-WITH-YOUR-SERVER.example.invalid",
"enabled": true,
"fieldMappings": {
"serial": "serial",
"wifiMAC": "_snipeit_REPLACE_WITH_WIFI_MAC_DB_FIELD"
},
"createDefaults": {
"model_id": 1,
"status_id": 2
},
"allowServerGeneratedAssetTag": true
}]
}</string>
<key>BoredScannerToken_company-snipeit</key>
<string>REPLACE_WITH_YOUR_API_TOKEN</string>
<key>BoredScannerLocalCSVEnabled</key>
<false/>
<key>BoredScannerCaptureProfiles</key>
<string>{
"schemaVersion": 1,
"defaultProfileID": "apple",
"disabledFieldIDs": ["bluetoothMAC"]
}</string>
</dict>
What to set
Replace every placeholder before deploying. The sample values are examples, not defaults.
| In the sample | Set it to |
|---|---|
baseURLhttps://REPLACE-WITH-YOUR-SERVER.example.invalid | Your Snipe-IT site address, starting with https://. Include an installation subpath if you have one; leave off /api/v1. |
BoredScannerToken_company-snipeitREPLACE_WITH_YOUR_API_TOKEN | The API token for the Snipe-IT account the app should act as. Scope that account to what the app needs. |
idcompany-snipeit | Any short ID you like, but it must match the token key name exactly: id: "acme-snipeit" pairs with BoredScannerToken_acme-snipeit. Change one, change both. |
nameCompany inventory | The display name people see in the app. |
fieldMappings.wifiMAC_snipeit_REPLACE_WITH_WIFI_MAC_DB_FIELD | The DB Field Name of your Wi-Fi MAC custom field in Snipe-IT (Settings › Custom Fields), not its display label. Remove this line if you don't send Wi-Fi MAC. |
createDefaults.model_id1 | The numeric ID of the Snipe-IT model new assets get. 1 is an example, not a universal ID. |
createDefaults.status_id2 | The numeric ID of a deployable status in your Snipe-IT. New assets use it, and so does Return to inventory. |
allowServerGeneratedAssetTagtrue | Leave true only if automatic asset tags are turned on in Snipe-IT. Otherwise set false and supply an asset-tag mapping. |
BoredScannerLocalCSVEnabled<false/> | <true/> allows local CSV saving and export, together. <false/> turns both off. |
defaultProfileIDapple | The capture profile selected when the camera opens. People can still pick another supplied profile. |
disabledFieldIDs["bluetoothMAC"] | Fields to stop capturing everywhere. Use [] to turn none off. |
Before rolling out
- When updating an existing deployment, merge into the complete app configuration. Keep other destinations and their token keys.
- XML-escape special characters in values, such as
&for an ampersand. - Classic AppConfig carries the token in the MDM payload. Restrict who can see it, and never put a real token in a shared example.
- Push to one pilot device first and check Admin setup › Test connection & load fields in the app.
- This sample is for Snipe-IT only. Oomnitza needs its own provider settings and your tenant's field IDs; changing the provider name alone won't work. In testing
Console references: Jamf managed app configuration · Kandji AppConfig.
API tokens are stored in the device's Keychain. Tokens delivered through classic AppConfig also exist in the managed configuration supplied by the MDM; treat that payload as a credential.
Inventory connections
Preconfigure the connection so people can get straight to scanning:
- Set Snipe-IT as a destination, with its display name and HTTPS server address. Oomnitza as a destination: In testing
- Supply an API token for each enabled destination.
- Enable or disable individual connections, or disable all managed connections.
- Map captured fields to the inventory system's API fields, including serial, part number, Wi-Fi MAC, Ethernet MAC, Bluetooth MAC, IMEI and asset tag.
- Set defaults for new assets, including Snipe-IT model and status IDs.
- Map exact captured model names to Snipe-IT model IDs.
- Allow Snipe-IT to generate missing asset tags when that feature is enabled on the server.
Defaults do not overwrite existing assets just because someone scans the same serial again. Choosing a manufacturer profile controls what the scanner looks for; it does not automatically choose a remote model or fill in missing values.
Capture profiles and field presets
Decide what the team should capture before the devices arrive:
- Turn fields off across all profiles. For example, disable Bluetooth MAC everywhere.
- Enable or disable fields for a specific profile, such as Ethernet MAC on Apple labels.
- Preload custom manufacturer or device-label profiles with their own names, fields and printed-label aliases.
- Define value types: serial number, part number, MAC address or text.
- Set an initial camera profile. Users can still choose another supplied profile.
- Lock the managed profile catalog against local edits.
Custom profiles can describe Lenovo, Dell or company-specific labels. They supply the wording to search for; they do not add a new built-in manufacturer recognition engine. Every profile needs an enabled serial-number field.
Turning off a field stops its extraction into the selected profile. It does not redact that text from the photo or erase the original OCR evidence.
Local CSV inventory
IT can enable or disable local CSV saving and export together. The setting is managed and locked on the device.
With managed backend connections, local CSV stays off unless the policy explicitly enables it. Disabling it keeps existing entries and cannot revoke copies already exported.
CSV export uses Apple's share sheet. Bored Scanner does not automatically save or sync to Files, iCloud Drive, Google Sheets or Microsoft 365. Any restrictions on AirDrop, Mail or other sharing destinations are separate device policies.
Assignment, lookup and retirement
The configured destination and API token also serve the asset workflows:
- Employees come from the selected inventory system and are cached locally for search.
- Configure Snipe-IT's archived retirement status.
- Configure Oomnitza's owner, status and user-identity fields, including its active-user and retired values. In testing
- Restoration uses the configured inventory status. Snipe-IT requires that status to be deployable.
- Oomnitza restoration: an explicit non-retired value and tenant-schema confirmation. In testing
There is no separate Google, Okta or HRIS login to configure in Bored Scanner. Sync those sources into the inventory system, then use its user directory. Server-side API permissions still determine what the token can do.
Scope and rollout
Settings refresh on launch, foreground and managed-configuration changes. Invalid or withdrawn managed policy blocks the affected feature instead of silently returning to an older local configuration.
AppConfig does not currently provide an admin PIN, independent workflow switches, automatic photo retention, remote purge, or separate CSV save/export permissions. Clearing exported CSV entries and clearing scan history/photos are separate, manually confirmed actions in the app.
Device enrollment, Apple Business app licensing, installation, updates, VPN access, camera restrictions and certificate trust are handled by the MDM and device environment.
Jamf and Kandji tenant deployment still needs pilot validation.
Oomnitza. In testing Today, Inventory sends to Snipe-IT or Local CSV. The Oomnitza keys above are being tested against a live tenant and will be confirmed here.
Contact
Stuck, or a console we haven't covered? Email hello@bacstech.io. One inbox, read by a person.