CCTV: Turning Camera Footage into Safety Insight
Build Your Own CCTV Safety Monitor
One of our customers built this entirely inside SoterAI — no extra software, no per-camera fees. This guide shows you how to replicate it.
Want help building this for your own cameras? We'll walk you through it — free.
What You're Building
An automated safety monitoring workflow that:
- Pulls a snapshot from your CCTV camera every hour (or any frequency you choose)
- Runs a full AI hazard analysis on the image — scene description, missing controls, OSHA violations, recommended actions
- Automatically creates a hazard record and/or notifies your team if something is flagged
- Requires zero manual effort once set up
Before You Start
You'll need three things:
| Requirement | Details |
|---|---|
| A cloud-connected CCTV system | Must support scheduled snapshot export (see platform guides below) |
| A cloud storage folder | SharePoint (recommended for Microsoft 365 users) or Google Drive |
| A SoterAI account | With access to Custom Workflows and Connectors |
Does My CCTV System Support This?
Most modern enterprise CCTV platforms support scheduled snapshot export natively. Select your platform below to see its setup guide.
Milestone XProtect |
Genetec Security Center |
Avigilon Alta Motorola Solutions |
Hikvision |
Hanwha Vision Wisenet |
Axis Communications |
Verkada |
Milestone XProtect
Capture method — Rule Engine + Export
How to set it up:
- 1In XProtect Smart Client, navigate to the Exports tab
- 2Add your camera's video sequence to the export list
- 3Select Export as still images as the format
- 4Under Still image format settings, enable Add date and time — this stamps the timestamp on the image
- 5Set the Export destination to your synced OneDrive/SharePoint folder
- 6For automated recurring exports, use Milestone's Rule Engine to trigger snapshot saves on a time-based schedule
Milestone's Rule Engine (in Management Client) lets you create a time-triggered rule that automatically saves a snapshot to a network folder at a set interval — no manual export needed once configured.
Don't see your platform?
Most enterprise CCTV systems support one of these methods:
- FTP upload on a schedule — most camera-level systems (Hikvision, Hanwha, Axis, Dahua)
- Network share / mapped drive output — most VMS platforms
- API / webhook — cloud-native platforms like Verkada
If your platform isn't listed, search your vendor's help center for “scheduled snapshot,” “timed image capture,” “FTP upload,” or “image export automation.” If you get stuck, contact us and we'll help you figure it out.
Configure Your Camera to Export Snapshots
In your CCTV platform (using the guide above), configure it to:
| Output format | JPEG or PNG |
| Frequency | Every hour (or every 10–30 minutes for higher coverage) |
| Filename format | Include a timestamp — e.g. camera1_2026-08-06_14-00.jpg. Timestamped filenames let SoterAI understand when each image was taken |
| Destination | Your SharePoint folder or Google Drive folder (see Step 2) |
Set Up Your Cloud Folder
Create a dedicated folder in SharePoint or Google Drive for your camera snapshots. Keep it clean — only snapshots from this camera should go here.
Recommended folder structure:
Point your CCTV system's export destination to the relevant subfolder.
One folder per camera makes it easy to run separate workflows with different instructions for each area.
Connect SoterAI to Your Cloud Folder
- 1In SoterAI, go to Connectors
- 2Connect your Microsoft SharePoint or Google Drive account
- 3Grant SoterAI read access to the folder you created in Step 2
- 4Test the connection — you should be able to browse to your snapshot folder
Privacy note: SoterAI connects to your cloud storage folder only — it never connects directly to your camera system or CCTV network. Your video footage stays on your infrastructure.
Build Your Custom Workflow
This is where you define what the AI looks for and what it does with what it finds.
4a. Create a New Custom Workflow
In SoterAI, navigate to Workflows → Create a Workflow. See Creating Custom Workflows for a full walkthrough of the builder.
4b. Set the Image Source
In your workflow instructions, tell SoterAI where to find the images:
“Pull the most recent image uploaded to [your SharePoint folder path] in the last hour.”
Or for higher frequency setups: “Pull all images uploaded to [folder path] in the last 30 minutes.”
4c. Write Your Analysis Instructions
This is the most important step. Be specific about what you want the AI to look for. Here's a template to start from:
Workflow Prompt Template
You are a workplace safety analyst reviewing CCTV snapshots.
Look in the following folder and pull all images created in the
last hour:
📁 [YOUR FOLDER PATH HERE — e.g. "SoterAI-CCTV/Camera-1-LoadingDock"]
For each image found, analyze it and provide:
1. SCENE DESCRIPTION — Describe what you see in the area.
What work appears to be happening? What equipment, materials,
or people are visible?
2. HAZARD ANALYSIS — Identify any hazards, unsafe conditions,
or missing controls. This should include two parts:
SPECIFIC FOCUS AREAS (things this camera is always checked for):
- [Your specific item 1 — e.g. "Is the emergency exit clear
and unobstructed?"]
- [Your specific item 2 — e.g. "Is the spill kit present
and accessible?"]
- [Your specific item 3 — e.g. "Are hazardous waste containers
properly closed and labeled?"]
GENERAL SAFETY SCAN (apply to every image regardless of area):
Look for anything that appears dangerous, non-compliant, or
likely to cause injury — even if not listed above. This includes
but is not limited to:
- Blocked or obstructed emergency exits, aisles, or fire equipment
- Missing, damaged, or inaccessible safety equipment
- Unsafe stacking, storage, or placement of materials
- Slip, trip, or fall hazards
- Visible spills or leaks
- Electrical hazards or exposed wiring
- Lack of appropriate signage or warnings
- Any condition that would likely fail an OSHA inspection
3. CONTROLS ASSESSMENT — What controls are in place?
What controls are missing or inadequate?
4. RECOMMENDED ACTIONS — What should be done, by whom,
and with what urgency?
5. OVERALL RATING — Rate the scene: Safe / Monitor / Action Required
- Safe: No significant hazards observed
- Monitor: Minor issues noted, no immediate risk but worth tracking
- Action Required: A hazard exists that needs prompt attention
---
RECORD CREATION
If the Overall Rating for any image is "Monitor" or "Action
Required", create a Hazard record in SoterAI with the following
fields:
- Title: Brief description of the hazard observed
- Location: [YOUR CAMERA LOCATION — e.g. "East Loading Dock"]
- Description: Full findings from steps 1–4 above
- Severity: Based on your assessment (Low / Medium / High)
- Image: Attach the snapshot that triggered the record
- Timestamp: Date and time from the image filename
⚠️ Note: The fields above reflect the default SoterAI Hazard
record type. If your workspace uses a customised Hazard record
with different fields, update this section to match your own
field names and options. Ask your SoterAI workspace admin if
you are unsure what fields are available.Before writing your prompt, spend 10 minutes in Risk Intelligence reviewing the common hazard types for this area of your facility. Use those as your specific focus items — the AI will be much more targeted and useful.
Not sure what fields your Hazard record type supports? See Setting Up and Managing Your Record Types.
4d. Set the Workflow Output Action
When the AI identifies a hazard, you have two options — or use both together:
Option A
Create a Hazard Record
Record type: Hazard. Trigger: when the AI rates the scene as “Monitor” or “Action Required.” Auto-populates scene description, hazards identified, recommended actions, image timestamp, and camera location. See Creating Records with AI Assistance.
Option B
Send a Notification
Alert a user or team directly when something is flagged. Notifications are delivered in-app and via email based on each user's preferences.
Using both together is recommended �� create the record for audit trail and traceability, and send a notification so the right person knows to act immediately.
Schedule the Workflow
For a full breakdown of scheduling options, see Scheduling Workflows.
- 1In your workflow settings, enable Scheduled Run
- 2Set the frequency to match your camera's snapshot interval — e.g. every 1 hour
- 3Set the start time and confirm the schedule
- 4Save and activate
Offset your workflow schedule by 5–10 minutes after your camera's export time. This gives the image time to land in the folder before SoterAI goes looking for it. For example: camera exports at :00, workflow runs at :10.
Test It
Before leaving it to run automatically:
- Manually trigger the workflow once
- Check that it found the correct image in your folder
- Review the AI's analysis — does it match what you'd expect from that area?
- If a hazard was found, confirm the hazard record was created and/or notification was sent correctly
- Adjust your prompt if the analysis is too broad, too narrow, or missing your key focus areas
What to Expect
The honest trade-off: this is a scheduled inspection tool, not a live monitoring system. Think of it as an automated safety walkthrough — every hour, without sending anyone out. It's excellent for persistent physical hazards and compliance checks. It's not designed to catch fast-moving behavioral events.
| Scenario | What SoterAI Will Catch | What It May Miss |
|---|---|---|
| Blocked emergency exit | Almost always — it's persistent | If cleared between snapshots |
| Missing spill kit | Visible in most frames | If temporarily moved and returned |
| Housekeeping / clutter | Persistent physical hazards | — |
| Improper storage / labeling | Visible in image | — |
| PPE non-compliance (person) | Only if person is in frame at snapshot time | Brief / fast-moving events |
| Forklift near-miss | — | Happens in seconds — likely to occur between snapshots |
Real-world example
Hazardous Waste Area Monitor
Here's how one SoterAI customer set this up for their hazardous waste storage area.
Camera
Fixed camera covering the 90-day hazardous waste storage zone
Frequency
Every hour
Focus items:
- Emergency exit clear and unobstructed
- Spill kit present and accessible
- Waste containers closed and labeled
- No unauthorized personnel in the area
- Aisle widths maintained (no blocking materials)
Output
Hazard record auto-created + safety manager notified via in-app alert and email
Result
The workflow ran hourly, flagged a blocked exit on a Tuesday afternoon, auto-created a hazard record, and the issue was resolved within 2 hours — something that would have gone unnoticed until the next scheduled inspection.
Frequently Asked Questions
Built by the Community, for the Community
This workflow was originally built by a SoterAI customer who stitched together Hazard Identification, Custom Workflows, and Scheduled Runs — three existing SoterAI features — into something entirely new. That's what #BuildWithSoter is about: sharing what you've built so others can learn from it.
Want help building this for your own cameras?
Book a short walkthrough with our team. We'll help you map out the connector, the prompt, and the record types for your facility — free, no obligation.
- A live walkthrough of this exact workflow
- Guidance tailored to your CCTV provider
- Answers to any setup questions along the way
Was this article helpful?