COPS 360Feature catalog
Complete A–Z · 17 September 2026

Everything the product can do, in one place.

Staff web app, mobile EMS app, WhatsApp communicator, GPS field tracker, desktop time tracker, customer-facing forms, and the vendor portal — inventoried from the live Laravel + Vue codebase. Each card names the screen and what you fill when you click New (fields, then what happens after Save). Use the AI chip (or search “AI”) for every Gemini / OpenAI screen. Role access is not a separate intern product: intern, staff, and admin all use the same screens, gated by the permission matrix.

391Documented capabilities
33Product areas
7Channels (web, mobile, WhatsApp, tracker, customer, vendor, public)
1Permission model for admin, staff, and intern

Showing every capability. Use the chips or search to isolate a channel or audience. Print this page for a designed PDF.

Audiences

Who this is for

There is no separate intern app. Create an Intern role in Settings → Roles and tick only the capabilities that intern should see. The same is true for sales, HR, accounts, and every other job.

Admin

  • Settings, roles, cron, activity log, company profile
  • Global view on CRM, billing, payroll, tracker live view & lock
  • DLP policies: websites, downloads, USB, file transfer, apps
  • WhatsApp gateway, SMTP/IMAP, Gemini, Pusher, Flutex API
  • Approve leave, run payroll, configure recruitment & careers

Staff

  • Whatever their role allows: own records, assigned projects, or global
  • Typical: leads, customers, tasks, tickets, mailbox, WhatsApp
  • Own attendance, leave requests, payslips, my performance
  • Desktop tracker on their enrolled PC; mobile GPS & punch
  • Staff chat DMs and groups

Intern

  • Same login and screens as staff
  • Usually View Own on tasks/projects, no settings, no payroll directory
  • May have mobile check-in and desktop tracker if those caps are ticked
  • Staff chat if PR Chat view is granted
  • Cannot see admin-only activity log unless they are admin

Customer / contact

  • Customer portal options (registration, contacts, files, KB)
  • WhatsApp as the person on the other side of the inbox
  • Email open tracking, proposals with e-sign, guest meeting join
  • Optional staff↔client PR Chat
  • This Vue app does not include customer login for invoices — that stays on the classic portal

Vendor

  • Purchase portal login
  • Own purchase orders and quotations
  • Own purchase invoices, with export

Candidate / guest

  • Public careers site and job pages
  • Apply, interview, joining, and onboarding token forms
  • Guest meeting join link (no staff account)

23 capabilities

Workspace

The shared shell every signed-in staff member uses: login, home, search, roles, and company setup.

Staff login

Open /login. Fill staff email and password, optional remember-me. Save/submit sets a Sanctum cookie and sends you to the dashboard (or the redirect URL).

WebAdminStaffIntern

OTP login

On login, request OTP for the email, then enter the code on verify. Success is the same session as password login.

WebAdminStaffIntern

Login as staff

Staff directory → a row → Login as. You become that person until Stop login-as. Needs staff.view; cannot delete the last admin.

WebAdmin

Mobile login

EMS app: email, password, API URL. Returns JWT, permissions, and dashboard payload. Forgot-password uses the same email. Logout clears the token.

MobileAdminStaffIntern

Desktop tracker login

EMS Desktop: HTTPS API URL, email, password. JWT is stored in the OS keychain; timer can auto-start after login.

TrackerStaffIntern

Home dashboard

Logo/home. Pick a date. Tiles: check-in, late, missing, leave, desktop activity, candidates, tasks due, tickets, meetings, leads, unpaid GST. Each tile opens that module.

WebAdminStaffIntern

Mobile dashboard & overview

App home: counts plus notifications (tap to read / read all). Profile: name, photo, change password.

MobileAdminStaffIntern

Global search

Top search box. Type a name/email/phone. Results: customers, leads, staff, vendors. Tap a row to open it.

WebMobileAdminStaffIntern

Quick access

Floating button → add a shortcut: label, URL, optional logo, drag to reorder. Click a chip to open that screen.

WebAdminStaffIntern

Notifications

Bell → list. Mark one or all read. If Pusher and desktop notifications are on, a toast appears (auto-dismiss seconds from Settings).

WebMobileAdminStaffIntern

Reminders

Others → Reminders → New, or a Reminders tab on a lead/customer. Fill: description, date/time, assigned staff, related type + record, notify by email. Save creates a calendar reminder; due items show on the dashboard.

WebMobileAdminStaffIntern

Activity log (admin)

Others → Activity log. Filter by actor and date. Admin-only. Optional clear.

WebAdmin

Personal profile

/profile. Edit your name, photo, password, and own documents. Staff without directory rights never see the full team list.

WebMobileAdminStaffIntern

Roles & permission matrix

Settings → Roles → New. Fill role name, then tick View Own / View Global / Create / Edit / Delete (and extras) per feature. On edit, optional “Update all staff using this role.” Assign this role on the staff form. Interns are just a role with fewer ticks.

WebAdmin

Staff directory

Staff → New. Fill: first name, last name, email, phone, password (blank on create defaults to ChangeMe123! — change on first login), role, departments, hourly rate, admin yes/no, active, not-staff flag, managers, profile image, CV, notes, bank for payroll, document uploads. Save creates the login. Edit uses the same form without requiring a new password. Cannot delete the last admin.

WebAdmin

Not-staff flag

On the staff form, tick is_not_staff. That person is hidden from attendance, payroll, and staff-chat user lists.

WebAdmin

To-do list

Others → To Do (or the floating dock) → Add. Fill: description, assignee. Check off, comment, reorder. No extra permission — every staff member has this. Also on mobile and the dashboard widget.

WebMobileAdminStaffIntern

Insights (beta)

Reports → Insights. Tabs: overview, project P&L, payroll pulse, purchase pulse, cash after obligations, recurring forecast, lead attention. Read-only charts from live data.

WebAdminStaff

Reports hub

Reports menu. Cards for CRM, finance, HR, desktop, purchase. Extra caps: timesheets, tracked hours, desktop tracker. View Own vs Global follows the report.

WebAdminStaff

Bulk PDF export

Where a list has Export PDF, this permission allows zipping many records at once.

WebAdminStaff

EMS app links

Settings → EMS app links. Paste Android / Windows / Mac download URLs so staff can fetch the apps from /ems-apps.

WebAdmin

Cron jobs settings

Settings → Cron jobs. Per job: enable, time, recipients, run now, logs. Covers invoice reminders, email queue, sale goals, performance cycles, recurring proformas.

WebAdmin

Custom fields

Setup → Custom fields → New. Fill: belongs to (lead/customer/etc.), name, type (text/select/checkbox…), comma-separated options, default, order, column width 1–12, active, required, show on table, only admin, inline, show on PDF, show on client portal, read-only for client. Slug is auto. Save adds the field to those forms.

WebCustomerAdmin

11 capabilities

AI

Every Gemini and OpenAI screen — one API key, then WhatsApp, mail, checklists, proposals, bills, jobs, CVs, Automail, interviews, and meeting notes.

One API key

Settings → Google / AI. Paste the Gemini API key and optional model (blank = gemini-2.5-flash-lite). That one key powers WhatsApp, mailbox, checklists, proposals, vendor bills, job copy, CV extract, Automail, and meeting notes. Meetings can also use a separate OpenAI key for Whisper if Gemini cannot transcribe.

WebAdminAI

WhatsApp AI Reply

Communicator → WhatsApp → open a thread → AI Reply (or custom-reply AI). Gemini drafts from chat context into the composer. You edit, then Send. Needs the Gemini key and leads view.

WebWhatsAppAdminStaffAI

Email AI Reply

Communicator → Mail → open a thread or Compose → AI Reply. Same on email logs. Gemini fills subject/body from the thread. Edit, then Send. Needs Gemini key; compose-ai-reply is gated by settings edit.

WebAdminStaffAI

Task checklist generate / rewrite

Open a task → checklist → AI generate or rewrite. Gemini builds items from the task subject/description. Review, then keep. Needs Gemini key.

WebAdminStaffInternAI

Lead proposal extract

Proposal services → New → Upload PDF (or extract on create). Gemini fills modules/items from the document. Review before Save.

WebAdminStaffAI

Purchase bill extract

Purchase → Invoices → New → Extract from PDF. Gemini fills vendor, dates, and lines. Review, then Save.

WebAdminStaffAI

Job description generate

Recruitment → Jobs → New → AI generate on the job description. Gemini writes copy from the campaign fields. Review before Save / publish to careers.

WebAdminStaffAI

Candidate CV extract

Recruitment → Candidates → New → upload CV → Extract. Gemini fills name, email, phone, LinkedIn, qualification, years, skills, work rows. Review, then Save.

WebAdminStaffAI

AI interview

Candidate → AI interview. Set question count, default answer type (audio/text), and notify emails under Recruitment → Settings → AI interview. Send link; the candidate uses the public token wizard. Staff review answers on the same screen.

WebPublicAdminStaffCandidateAI

AI Automail

Leads → AI Automail. Rules → New (enter/exit statuses, step prompts, send window). Settings → General (hours, timezone) and Prompt masters (label, slug, prompt text, usage scope). Enrollments list pause/remove; Logs show Gemini sends. Cron enrolls matching leads and replies to inbound mail.

WebAdminStaffAI

Meeting transcript and notes

After a recorded meeting → Session → Load transcript (Gemini or OpenAI Whisper if Gemini cannot transcribe) → Generate notes (summary and action items). Provider is Meetings settings: Gemini (same Google key) or OpenAI (meetings_openai_key + model, default gpt-4o-mini).

WebAdminStaffAI

31 capabilities

Leads

CRM pipeline from first phone number to conversion — including WhatsApp, mail, proposals, and AI follow-up.

Lead list & kanban

Leads menu. Switch list or board. Filters: status, source, category, last activity, lost, junk, unassigned, public, contacted today, unread WhatsApp/mail/inbox. Drag a card to change status.

WebMobileAdminStaff

Create / edit leads

Leads → New (page or modal). Fill: name, company, position, website, status, source, assigned, category, last activity, country, lead value, last contacted, public, address/city/state/ZIP, description, plus up to 10 contacts (name or email required per row; country code, phone, WhatsApp, email). Custom fields from lookups. Save opens the lead workspace. Edit follows View Own vs View Global.

WebMobileAdminStaff

Own vs all leads

Role: View Own = leads you created or are assigned. View Global = every lead. Interns typically get View Own only.

WebAdminStaffIntern

Lead profile

Lead → Profile tab: the same fields as create, plus lost/junk flags. Save updates the record used by WhatsApp, mail, and convert.

WebMobileAdminStaff

Multiple contacts & phones

On create/edit, Add contact. Each row: name, email, calling code, number, primary, WhatsApp. WhatsApp 1/2 custom fields stay in sync with marked numbers.

WebMobileWhatsAppAdminStaff

WhatsApp on lead

Lead → WhatsApp tab. Pick a marked number, type a message or template, send. Unread WhatsApp filter on the list. Chip opens wa.me.

WebWhatsAppAdminStaff

Email on lead

Lead → Emails. Compose using mailbox SMTP, or read the thread. Unread mail filter on the list.

WebAdminStaff

Reminders & notes

Lead → Reminders → New (date, text, staff). Notes → add a note. Both stay on the timeline.

WebAdminStaff

Activity timeline

Lead → Activity. Read-only log of status, calls, mail, WhatsApp, convert.

WebMobileAdminStaff

Meetings on lead

Lead → Meetings → New (same meeting form, related lead prefilled).

WebAdminStaff

Tasks on lead

Lead → Tasks → New (task form with this lead as related).

WebMobileAdminStaff

Calls & call logs

Lead → Calls / Call logs. Click-to-call a number; mobile-synced recordings appear here.

WebMobileAdminStaff

Lead proposals

Lead → Proposals → New lead proposal (scope, packs, items) linked to this lead.

WebAdminStaff

Mail schedules

Lead → Mail schedules. Shows AI Automail enrollments for this lead; pause/remove from Automail.

WebAdminStaff

Attachments

Lead → Attachments → upload a file. Stored on the lead for the team.

WebAdminStaff

Website tools

Lead → Website tools. Run site status, DNS, IP, SSL, meta tags against the lead URL.

WebAdminStaff

Bulk lead actions

Tick rows → bulk: delete, mark lost, set status/source/assigned/last contact/visibility/tags.

WebAdminStaff

Convert with notes and password

Lead → Convert to customer. Optional: transfer notes/consent, set a portal password. Creates a customer; may auto-assign you as customer admin and lock the lead.

WebCustomerAdminStaff

Lead import

Leads → Import CSV (columns mapped to name, email, phone, status…). Setting allow_non_admin_members_to_import_leads gates non-admins.

WebAdminStaff

Consents

Lead consents tab: record marketing/processing consent against the person.

WebAdminStaff

Mark lost / junk

Lead actions: Mark lost or Mark junk (and unmark). Removes them from the working board.

WebMobileAdminStaff

Lead conversion report

Reports → Leads conversion: converted vs open by status.

WebAdminStaff

Lead statuses / sources / categories / last activity

Setup → each list → New. Fill name, optional color, order, default. These drop-downs appear on the lead form and board.

WebAdmin

Lead follow-up scheduler

Leads → Lead follow-up → New. Fill: which leads, send email and/or SMS, schedule/cron. Logs show sent and cron runs.

WebAdminStaff

Cold calling worksheet

Leads → Cold calling. Per row fill: phone, name, company, email, status, comments, next follow-up date. Save is today’s call log. Convert a row → New lead with that phone.

WebAdminStaff

Cold calling import & convert

Worksheet → Import CSV of numbers. Convert selected row → New lead with that phone.

WebAdminStaff

Cold calling report

Cold calling → Report: counts by status and staff.

WebAdminStaff

AI Automail enrollments

Leads → AI Automail → Rules → New. Fill: name, goal description, enter/exit lead statuses, sequence steps (days + prompt), first delay hours, send window (start/end hour), sending staff, auto-reply inbound, pause on reply, weekdays only, negative-reply action, active. Save. Matching leads enroll; cron sends and replies. Logs on Automail → Logs.

WebAdminStaffAI

Estimate requests

Inbound quote requests (estimate_request permission). Can show on the classic customer area when that setting is on.

WebCustomerAdminStaffCustomer

Lead lock after convert

Settings → Lead defaults. Tick lock after convert so the lead form becomes read-only.

WebAdmin

Auto-assign customer admin

Settings → Lead defaults. Tick so the converting staff becomes the customer admin.

WebAdmin

17 capabilities

Customers

Account records after conversion, plus the settings that drive the customer portal and contact rights.

Customer list

Customers menu. Filter active/inactive. Visibility is assigned customer admins (not View Own). Open a row for the workspace tabs.

WebMobileAdminStaff

Create / edit customer

Customers → New. Fill: company, VAT/GST, phone, website, company email, address, city, state, ZIP, billing street/city/state/ZIP, country, latitude, longitude, destination, groups, assigned admins, custom fields. Save creates the account. Contacts are not on this page — add them on the customer after Save. Edit from the profile tab.

WebMobileAdminStaff

Contacts

Customer → Contacts → Add (modal). Fill: first name, last name, email, phone, position, password, primary, active, welcome-email. Tick module rights: invoices, estimates, contracts, proposals, support, projects. Tick email alerts (invoice, estimate, credit note, contract, task, project, ticket) and optional project access. Save is the person who can use the classic portal.

WebCustomerAdminStaffCustomer

Notes, emails, WhatsApp

Customer tabs: add a note; mailbox thread; WhatsApp for the contact’s marked numbers.

WebWhatsAppAdminStaff

Orders & services

Customer → Orders / Services (needs billing permissions). Same records as Accounting, filtered to this customer.

WebAdminStaff

Proformas, GST invoices, credit notes, payments

Customer billing tabs. Open a document, PDF, mail, or record a payment from here.

WebAdminStaff

Customer wallet

Customer → Wallet. View/edit credits and settlements (needs wallet permission).

WebAdminStaff

Customer statements

Customer → Statements. Download proforma statement PDF/Excel for a date range.

WebAdminStaff

Proposals & contracts

Customer → Proposals / Contracts. Lead proposals and documentation sent to this company.

WebAdminStaff

Projects, tasks, meetings, call logs, tickets

Customer operational tabs. New project/task/meeting/ticket from here is prefilled with this customer.

WebAdminStaff

Attachments, vault, reminders, map

Upload files; add vault login/server; set reminders; map uses the billing address geocode.

WebAdminStaff

Customer groups

Setup → Customer groups → New. Name only. Then pick the group on the customer form.

WebAdmin

Customers summary report

Reports → Customers summary: active vs inactive, top cities.

WebAdminStaff

Customer portal settings

Settings → Customer portal. Toggles: allow registration, require confirmation, company required, default country, KB on portal, KB without registration, contact may delete files, own-files-only, primary can edit billing/shipping, primary can manage contacts, estimate request in customers area, honeypot, info format, default theme.

WebCustomerAdminCustomer

Staff–client chat

Staff chat → Clients (when chat_client_enabled). Pick a contact, send messages. Contact uses the classic portal chat if enabled.

WebCustomerAdminStaffCustomer

Contracts (core)

Contracts list → New from template. Extra cap: view all templates.

WebCustomerAdminStaffCustomer

Contact portal rights

On each contact: module checkboxes and email-alert checkboxes listed under Contacts above.

CustomerAdminCustomer

13 capabilities

Lead Proposal

Scoped commercial proposals for leads: packs, modules, items, terms, workflows, and e-sign.

Proposal list & preview

Proposal services → New. Pick related customer or lead. Fill: title, subtitle, platform, project value, client name/contact/email, scope pack. Scope mode: Modules, Items, or Upload PDF (pack replace warning on modules). Payment plan milestones (%, label, amount, terms) from a preset; delivery-approach steps; document sections from masters. Save stores the JSON document. Save & Preview opens preview; Save & Send Email mails it. PDF from Preview.

WebAdminStaff

Proposal categories

LP Master → Categories → New: name. Used as a dropdown on the proposal.

WebAdminStaff

Proposal modules

LP Master → Modules → New: name, description/scope text. Tick modules onto a proposal or into a pack.

WebAdminStaff

Technologies master

LP Master → Technologies → New: name. Tag a proposal with tech.

WebAdminStaff

Scope packs

LP Master → Scope packs → New: name + modules in the pack. On a proposal, selecting a pack replaces existing modules.

WebAdminStaff

Sections master

LP Master → Sections → New: heading and body (reusable bullets). Insert into proposals.

WebAdminStaff

Item categories & items

LP Master → Item categories / Items → New: name, category, price. Add lines onto a proposal.

WebAdminStaff

Payment presets

LP Master → Payment presets → New: labelled milestone percents/amounts. Apply to a proposal.

WebAdminStaff

Proposal workflows

LP Master → Workflows → New: ordered stages. Apply as the proposal’s process.

WebAdminStaff

Terms templates

Lead Proposal → Terms → New: title + terms HTML. Apply or mail with the proposal.

WebAdminStaff

AI extract

On create, upload a document → AI extract fills modules/items. Review before Save.

WebAdminStaffAI

HTML / PDF / mail

Open a proposal → Preview HTML, download PDF, or mail to the lead/customer.

WebAdminStaff

E-sign identity confirmation

Settings → E-Sign. Legal text plus tick identity confirmation when a proposal is accepted.

WebCustomerAdminCustomer

16 capabilities

Projects

Delivery workspace: tasks, hours, files, tickets, vault, meetings, and WhatsApp on one project.

Project list & create

Projects → New. Fill: name, description, customer, status, start, deadline, billing type (fixed cost / hourly / task hours), project cost or rate/hour, estimated hours, billing hours (initial / client additional / internal additional), manual progress %, progress-from-tasks, team members, tags, contact notification, project feature toggles (tasks, tickets, vault…). Save opens the workspace. Pin/unpin and mark-as from the list. View Own = assigned only.

WebMobileAdminStaffIntern

Overview

Project home: status, dates, members, hours vs estimate. Edit from the Edit tab (same fields as create).

WebMobileAdminStaffIntern

Project tasks

Project → Tasks → New task (related project prefilled). List/kanban of this project’s tasks.

WebMobileAdminStaffIntern

Project meetings

Project → Meetings → New (related project prefilled).

WebAdminStaff

Timesheets

Project → Timesheets. Hours from task timers on this project.

WebAdminStaffIntern

Project hours

Project → Project Hours. Rolled-up initial / client additional / internal additional vs estimates.

WebTrackerAdminStaff

Files

Project → Files → upload. Tick staff-only vs visible to client on the classic portal.

WebCustomerAdminStaff

Emails

Project → Emails. Compose/read mail about this project.

WebAdminStaff

WhatsApp on project

Project → WhatsApp (needs leads view). Chat against the customer’s WhatsApp numbers.

WebWhatsAppAdminStaff

Tickets on project

Project → Tickets → New ticket linked here.

WebAdminStaff

Vault on project

Project → Vault → New login/server entry for this project.

WebAdminStaff

Notes & activity

Project → Notes (add text) and Activity (read-only log).

WebAdminStaffIntern

Milestones

On the project, Milestones → New: name, due date, order. Needs create/edit/delete milestone caps.

WebAdminStaff

Checklist report & send email

Project actions: checklist report, send email to the customer/team.

WebAdminStaff

Project P&L insight

Insights → Project P&L: staff hours cost vs customer proforma billing.

WebAdmin

Desktop project report

Desktop reports → Project: progress, assignee hours, estimated vs used, start, deadline.

WebTrackerAdminStaff

13 capabilities

Tasks

Work items with checklists, timers, assignees, and mobile status updates.

Task list

Tasks menu. List or kanban. View Own = assigned or following. New opens the task form.

WebMobileAdminStaffIntern

Create / task detail

Tasks → New (modal, or from a lead/customer/project). Fill: name, rich description, start/due, priority, status (edit), related type + record search, estimated hours, billable, public (edit), assignees, followers, tags, recurrence (every / custom interval / cycles). Save creates the task (default assignee = you). Open it to edit the same fields.

WebMobileAdminStaffIntern

Assignees & followers

On the task, add/remove people. Settings can auto-assign and auto-follow the creator.

WebMobileAdminStaffIntern

Comments

Task → comment box. Optional rule: client/staff may edit/delete only in the first hour.

WebMobileAdminStaffIntern

Checklist

Task → checklist → add item (text). Toggle done, verify, reorder, attach a file, start a per-item timer. AI generate/rewrite can fill items from the description (Gemini key in Settings → Google / AI).

WebMobileAdminStaffInternAI

Checklist templates

Settings/tasks → checklist templates → New: name + items. Insert onto a task. Create/delete caps only.

WebAdminStaff

Timers / timesheets

Start/Stop on the task (or from desktop tracker). Settings: round-off, auto-stop other timers, idle stop, change status to in progress on start. Edit/delete timesheet rows if you have own or global timesheet caps.

WebMobileTrackerAdminStaffIntern

Recurring tasks

On the task, set repeat. Cron clones the next occurrence when due.

WebAdminStaff

Task screenshots

While the desktop timer is on this task, captured screens appear on the task.

WebTrackerAdminStaff

Show all tasks for project members

Settings → Tasks. Tick so project members see every project task, not only assigned.

WebAdmin

Tracked hours report

Reports → Tracked hours: staff, project, hours (needs reports view-tracked-hours).

WebAdminStaff

Task time log report

Desktop reports → Task time: hours logged across tasks, grouped by project and assignee.

WebTrackerAdminStaff

Status from mobile

EMS app: open task → change status, add comment, toggle checklist, start checklist timer, add assignee/follower.

MobileAdminStaffIntern

5 capabilities

Tickets

Support queue — New ticket fields, departments, and convert-from-chat.

Ticket list & detail

Tickets menu. Open a row for the thread. New opens the ticket form. View is global (no View Own).

WebMobileAdminStaff

Create / edit ticket

Tickets → New. Fill: subject (required), customer userid, department, status, priority, assigned staff, contact email, contact name, message. Save creates the ticket and opens the thread. Reply on the thread to add staff notes.

WebMobileAdminStaff

Departments

Setup → Departments → New. Fill: name, email, hide-from-client. Save is the department drop-down on New ticket and on the classic portal.

WebCustomerAdmin

Priorities & services

Setup → Ticket priorities / Services → New: name. Those lists appear on the ticket form.

WebAdmin

Convert chat to ticket

Staff chat thread → Convert to ticket. Uses the conversation as the ticket message; Save opens Tickets.

WebAdminStaff

29 capabilities

WhatsApp

Inbox, templates, media, gateway settings, and every send path on web and mobile.

Inbox (individual chats)

Communicator → WhatsApp (/comms/chat). Pick a connection, search, open a thread. Unread badges clear when you read. Pagination loads older chats.

WebMobileWhatsAppAdminStaff

Group chats

Inbox → Groups. List of @g.us chats with display names. Refresh groups pulls from the WhatsApp chat gateway.

WebMobileWhatsAppAdminStaff

Send text

Open a thread → type a message → Send. Cloud API only allows free-text inside a 24-hour customer-service window; QR/Evolution lines send anytime.

WebMobileWhatsAppAdminStaff

Approved templates

Thread → Template. Pick an approved Cloud API template, language, and variables. Send starts or restarts a session after 24 hours.

WebMobileWhatsAppAdminStaff

Media: image, video, audio, document

Thread → attach file → Send. Mobile: upload_media then send_media. Cloud API blocks media until a session window is open — send a template first.

WebMobileWhatsAppAdminStaff

Quick replies

Settings → WhatsApp → Quick replies: shortcut (e.g. /hello) and message. In a thread, type the shortcut to insert the snippet.

WebMobileWhatsAppAdminStaff

AI draft / AI reply

Thread → AI draft / AI reply. Uses the Gemini key from Settings → Google / AI. Fills the composer from chat context; you edit then Send.

WebWhatsAppAdminStaffAI

Mark as read

Open a thread or tap Read. Marks local unread and the gateway. Also by phone number.

WebMobileWhatsAppAdminStaff

Create contact

Inbox → New chat. Fill: phone, optional name and email, connection. Save opens that thread.

WebWhatsAppAdminStaff

Search contacts

Inbox search: name or number across gateway contacts, leads, and customers. Tap a row to open the chat.

WebWhatsAppAdminStaff

CRM link from chat

On a thread, Open lead / Open customer when the number matches. Messages stay on that CRM record.

WebWhatsAppAdminStaff

Multiple connections

Connection picker lists Cloud API and QR/Evolution lines. Star one as default. Inbox filters to the selected line.

WebMobileWhatsAppAdminStaff

Mute a WhatsApp line

On a connection, Mute. That line drops out of inbox pulse until you unmute.

WebMobileWhatsAppAdminStaff

24-hour session helper

Thread header shows QR always-open vs Cloud: session active, expired, or no customer reply yet.

WebWhatsAppAdminStaff

Inbound webhook

Meta Cloud API verifies hub.mode / hub.verify_token. The WhatsApp chat gateway posts inbound messages and delivery statuses. Not Twilio.

WhatsAppAdmin

Message status tracking

Each outbound message stores a WAMID; the webhook updates sent / delivered / read.

WebWhatsAppAdminStaff

CRM phone exists check

Gateway webhook asks whether the number is a known lead/customer before routing.

WhatsAppAdmin

WhatsApp settings

Settings → WhatsApp. Fill: enable, gateway base URL, token, organization id, default connection, webhook token. Add quick-reply rows (shortcut + message). Save writes the communicator config. Webhook URL and CRM phone-check URL are shown for the gateway.

WebWhatsAppAdmin

Verify gateway

WhatsApp settings → Verify. Tests the WhatsApp chat gateway with the saved URL and token.

WebWhatsAppAdmin

Open-by-phone from CRM

Lead / customer / project → WhatsApp. Jumps to that phone’s thread in the inbox.

WebWhatsAppAdminStaff

Unread WhatsApp on leads

Leads board filter: Unread WhatsApp. Cards with unread inbound messages.

WebWhatsAppAdminStaff

Mobile WhatsApp parity

EMS app communicator: connections, inbox, messages, send, send_template, upload_media, send_media, read, templates, quick_replies, crm-lookup.

MobileWhatsAppAdminStaff

Inbox pulse

Mobile badge: combined unread email + WhatsApp counts.

MobileWhatsAppAdminStaff

Local + gateway inbox

Inbox loads local MySQL interactions, with refresh from the gateway. Group names cache for 15 minutes.

WebWhatsAppAdminStaff

Dedupe by phone

Conversations merge by normalized digits so the same person is not listed twice.

WebWhatsAppAdminStaff

Lead WhatsApp custom fields

On the lead form, WhatsApp 1 / WhatsApp 2 stay in sync with contacts marked WhatsApp.

WebWhatsAppAdminStaff

Send from lead workspace

Lead → WhatsApp: type text, Send. Opens that phone in the inbox in one action.

WebWhatsAppAdminStaff

Media requires open window

On Cloud API, attach is blocked until a customer-service window is active. UI tells you to send a template first.

WebWhatsAppAdminStaff

Default connection star

Connection picker marks the default line with a star (set in WhatsApp settings).

WebMobileWhatsAppAdminStaff

13 capabilities

Email

Mailbox compose fields, SMTP/IMAP New dialogs, templates, AI replies, logs.

Staff mailbox

Communicator → Mail. Folders, search, contact filter, days window. Star, read/unread, trash, restore, bulk actions. Open a row to read.

WebMobileAdminStaff

Compose / reply / reply-all / forward

Mailbox → Compose (or Reply / Reply all / Forward). Fill: To, CC, BCC, subject, body, attachments, SMTP account. Send queues via that SMTP.

WebMobileAdminStaff

AI email reply

Open a thread → AI reply. Gemini drafts from the thread (Settings → Google / AI). Edit, then Send.

WebAdminStaffAI

Mailbox refresh & live sync

Refresh counts and live IMAP sync. Repair mistagged folders and duplicate mails from mailbox tools.

WebMobileAdminStaff

Mute an IMAP account

On an IMAP line, Mute so it drops out of inbox pulse (same mute API as WhatsApp).

WebMobileAdminStaff

System email on/off

Settings → Email. Kill-switch for all outgoing mail (blocks MessageSending when off).

WebAdmin

SMTP accounts

Settings → SMTP → New. Fill: company/from name, engine (PHPMailer), protocol (SMTP / Google OAuth / Microsoft OAuth / mail), encryption, host, port (default 587 TLS), from email, username, password, charset, public, status, assigned staff. Save is a send-from option on Compose. Google/Microsoft skip password and use OAuth.

WebAdmin

IMAP accounts

Settings → IMAP → New. Fill: name, IMAP server, port (default 993), encryption (SSL), username, password, from-date, status, public. Save starts folder sync into the mailbox.

WebAdmin

Email templates (setup)

Setup → Email templates. Open a template: subject, body with merge fields, enable/disable. Bulk status from the list.

WebAdminStaff

Email template manager

Communicator → Templates: rich templates, attachments, timers, triggers, specials, webhooks. Legacy ETM screens redirect here.

WebAdmin

Email logs

Others → Email logs. Outbound rows with status. Open-tracking pixel hits /check_emails/track/{uid}.

WebCustomerAdmin

Email open tracking

When a customer opens a tracked mail, the pixel records the open on the log.

CustomerAdminCustomer

Cron: process email queue

Settings → Cron jobs → email queue. Enable, time, run now. Token URL flushes the queue.

WebAdmin

15 capabilities

Staff Chat

DMs, groups (name + members), files, announcements, client chat, and the settings toggles.

Enable via Pusher

Settings → Staff chat. Tick pusher_chat_enabled (and tblchatmessages must exist). The Staff chat menu then appears.

WebAdmin

Direct messages

Staff chat → pick a person → type a message → Send. Typing indicator, mark viewed, unread counts. Also on mobile.

WebMobileAdminStaffIntern

Message search

Staff chat search: all messages, or inside one partner thread.

WebAdminStaffIntern

Forward message

On a message → Forward. Pick one or more staff. Save copies it into those threads.

WebAdminStaffIntern

Delete message / conversation

Delete a message if staff_can_delete_messages is on, or delete the whole conversation.

WebAdminStaffIntern

Groups

Staff chat → Groups → New. Fill: group name, member ids. Save creates the room. Rename, add/remove members, leave. Members-can-create-groups is a setting.

WebAdminStaffIntern

Group messages

Open a group → type text or upload a file → Send.

WebAdminStaffIntern

File sharing

In a 1:1 or group, attach a file. Shared-files list; authenticated download.

WebMobileAdminStaffIntern

Audio messages

Attach an audio clip in staff chat. Plays in the thread.

WebAdminStaffIntern

Announcements

Staff chat → Announcement. Type the broadcast; Save posts it to staff.

WebAdmin

Convert to ticket

Thread → Convert to ticket. Creates a support ticket from the conversation.

WebAdminStaff

Presence: status, color, theme

Staff chat profile: status, personal color, theme. Save is your presence in the list.

WebAdminStaffIntern

Realtime (Pusher)

Pusher auth for live messages. Mobile: me / conversations / messages / upload / mark_read.

WebMobileAdminStaffIntern

Client chat

When chat_client_enabled: Staff chat → Clients. Pick a contact, send. Contact uses classic portal chat.

WebCustomerAdminStaffCustomer

Chat settings

Settings → Staff chat. Toggles: enable Pusher chat, show only users with chat permission, client chat, staff can delete messages, desktop message notifications, members can create groups, staff may create tickets. Save applies immediately.

WebAdmin

12 capabilities

Meetings

New meeting fields, guest join (name/email), recordings, and tracker meeting-app time.

Meeting list / calendar / history

Meetings menu: upcoming, calendar, history. New opens the form. Open a row for the room and session.

WebAdminStaff

Create & edit meetings

Meetings → New. Fill: subject (required), description, start, end, host staff, join-before minutes (default 15), related type (customer / lead / project) + record, staff participants, allow guests, recording (off / video / audio), guest emails on create only. Save creates the room and can mail guests. Edit from the same form (no guest-email field).

WebAdminStaff

Meeting room

Open a meeting → Join room at /cops360/meetings/:id/room (RealtimeKit / Jitsi).

WebAdminStaff

Guest join link

Public /meetings/join/{token}. Guest fills name (required) and optional email, then Join — no staff login.

WebPublicGuestCustomer

Session notes & recordings

After the meeting, Session page: notes, stream/download recordings (needs meetings view).

WebAdminStaff

RealtimeKit webhook

Provider posts meeting events (CSRF excluded). No staff form.

WebAdmin

Instant meeting

Meetings → Instant. Starts a room without a scheduled slot; you are the host.

WebAdminStaff

Import from mail

Mailbox invite → Create meeting. Prefills subject, time, guests from the invite.

WebAdminStaff

ICS, share, cancel, reopen, end

On a meeting: download ICS, share/resend email, cancel, reopen, or end the session.

WebAdminStaff

Transcripts and AI notes

Session → Load transcript (Gemini or OpenAI Whisper) → Generate notes. Summary and action items. Provider is Meetings settings: Gemini (Google / AI key) or OpenAI (meetings_openai_key).

WebAdminStaffAI

Test RealtimeKit

Settings → Meetings → Test. Calls Cloudflare RealtimeKit with the saved credentials.

WebAdmin

Desktop meeting-app report

Desktop reports → meeting apps: Teams, Meet, Zoom time from the tracker.

WebTrackerAdminStaff

2 capabilities

Call logs

Mobile-synced call history and recordings.

Call log list & detail

Others → Call logs. Mobile-synced rows: number, direction, duration. Open a row. Directory, lookup, sync, store from the EMS app.

WebMobileAdminStaff

Call recordings

On a call log, upload / stream / download the recording (mobile can attach on sync).

WebMobileAdminStaff

34 capabilities

Accounting

Orders, proformas, GST, bank accounts, sale goals, expenses — with the fields on New.

Services list

Accounting → Services. Filter Active. Open a row. Suspend / restore from the detail. New opens the order form.

WebMobileAdminStaff

Create service / order

Accounting → Orders / Services → New. Fill: customer picker + display name, subject, start date, status (Active), billing email/phone/GSTIN, billing address, GST mode (auto / IGST / CGST+SGST), currency, discount, line items (name, description, qty, unit price, recurring cycle). Ticks: create proforma, send mail. Save creates the WHMCS-style service and optionally the first unpaid proforma.

WebAdminStaff

Service detail

Open /accounting/services/:id. Same fields as create plus suspend/restore. Linked proformas sit on the record.

WebAdminStaff

Proforma invoices

Accounting → Proformas → New. Fill: service/order, customer, customer name, subject, date, start date, due date, GST mode, currency, email, phone, GSTIN, billing address, discount, line items. Save numbers the proforma. Recurring cron clones due recurrences.

WebAdminStaff

Proforma PDFs, mail, Excel, zip

On a proforma: PDF/HTML (signature + payment QR), mail to the customer, Excel, customer Excel, zip many PDFs.

WebAdminStaff

GST invoices

Accounting → GST invoices. Usually generated from a paid/accepted proforma. Open for tax invoice date (created date) and due (created + 5 days). Edit if you have the cap.

WebAdminStaff

GST void and dates

On a GST invoice → Void. Tax invoice date is created date; due is created + 5 days.

WebAdminStaff

GST credit notes

Accounting → Credit notes. List and detail against GST invoices.

WebAdminStaff

Payment received

Accounting → Payments (proforma). Record amount, date, account. View/edit the list.

WebAdminStaff

GST invoice payments

GST-side payment records. View/edit from GST invoice detail.

WebAdminStaff

TDS / 26AS on payments

On a payment, tick 26AS/TDS. That amount appears on the TDS report.

WebAdminStaff

Orders

Accounting → Orders. Same service records; create/detail. No View Own — assigned billing staff see the list if they have the cap.

WebAdminStaff

Domain orders

Accounting → Domain orders. View-only list of domain-type orders.

WebAdminStaff

Default terms (PI)

Accounting → Default terms. Edit the HTML that new proformas inherit.

WebAdmin

Goal management

Accounting → Sale goals → New. Fill: name, staff (one or more), start/end (default this month), sale target, description, recurring (repeat every N months, unlimited or N cycles). Save; cron rolls the next period. Open a row for actual vs target.

WebMobileAdminStaff

Bank / card accounts

Accounting → Bank → New. Fill: display name, bank name, account number, IFSC/SWIFT, type (bank or card), branch, card number, card holder, notes, hint, sort order, active. Save is selectable on passbook and purchase payments.

WebAdminStaff

Passbook

Accounting → Passbook. Add a movement: account, amount, date, description, pool category. Client-currency lookup. Pool in / pool out moves between pools; wallet credits and vendor advances from here.

WebMobileAdminStaff

Passbook pool in / pool out

On passbook, Pool in / Pool out. Pick from-pool, to-pool, amount. Save moves money. Wallet credit/settlement and vendor advances use the same ledger.

WebAdminStaff

Passbook pool categories

Setup → Passbook pools → New: name. Used on passbook movements.

WebAdmin

Accounting activity log

Accounting → Activity. Read-only billing log.

WebAdminStaff

GST report

Reports → GST: invoice totals, tax, payment status.

WebMobileAdminStaff

TDS report

Reports → TDS from proforma payments with the 26AS tick.

WebMobileAdminStaff

Customer statement

Customer → Statements, or Reports → Customer statement. Date range → PDF/Excel.

WebMobileAdminStaff

Invoice reminders cron

Settings → Cron → invoice reminders. Token URL mails due invoices.

WebAdmin

Invoice & money defaults

Settings → Finance. Default tax, due-after days, number format, next number, currency placement, separators.

WebAdmin

Tax rates & currencies

Setup → Taxes → New: name, percent. Currencies → New: symbol, default. Used on proformas and expenses.

WebAdmin

Company subscriptions

Others → Subscriptions → New. Fill: name, provider, category, amount, currency, billing cycle (monthly…), start, renewal, end, auto-renew, status, login email, account URL, credentials notes, assigned staff, reminder days before, notes. Save; renew from the row (renewed-at, amount, notes).

WebMobileAdminStaff

Expenses

Finance → Expenses → New. Fill: category, date, amount, currency, tax, tax 2, expense name, reference, note, customer, project, payment mode, billable, repeat every (or custom N day/week/month/year and cycles), create invoice if billable, send invoice to customer. Save. Categories: Setup → Expense categories → New (name, description).

WebMobileAdminStaff

Classic Perfex sales removed

Items / estimates / classic invoices / payments are disabled. Billing is Accounting (orders, proformas, GST).

WebAdmin

Recurring proformas

On a proforma set recurrence; cron (token URL) clones the next one. Recurring proforma report lists them.

WebAdmin

Legacy invoices permission

Role matrix still has invoices. It gates some finance insights and classic invoice-shaped access.

WebAdminStaff

Legacy WHMCS services bundle

Old whmcs_services view grants Orders + Domain Orders + Services List together.

WebAdmin

Insights: cash after obligations

Insights → Cash: expected in, GST still open, staff payout, remaining cash.

WebAdmin

Insights: recurring forecast

Insights → Recurring: this month, next month, three months vs 3-month sales average.

WebAdmin

19 capabilities

Purchase

Vendors through invoices: each New form, copy-through-chain, vendor portal, AI extract.

Vendors

Purchase → Vendors → New. Fill: company (required), vendor code, phone, VAT, city, website, address, active. Save opens the vendor. Statement panel on the detail.

WebMobileAdminStaff

Vendor items

Purchase → Vendor items → New. Pick vendor and catalog item. Save maps that SKU to the vendor (URL exists even if not on the slim sidebar).

WebAdminStaff

Purchase requests

Purchase → Requests → New. Fill: name (required), code, description, plus lines (item, qty, unit price, tax). Save is the PR; then submit into approval.

WebAdminStaff

Quotations

Purchase → Quotations → New. Fill: vendor, reference, date, expiry, vendor note, terms, taxable line items. Save. Copy from a request when you use Copy through the chain.

WebAdminStaff

Purchase orders

Purchase → Orders → New. Fill: name, number, vendor, project, order date, delivery date, vendor note, terms, line items with tax. Save. Copy from a quotation.

WebAdminStaff

Purchase order returns

On a PO, return (purchase_order_return permission). Records goods sent back to the vendor.

WebAdminStaff

Contracts

Purchase → Contracts → New. Fill: contract name, vendor, value, start, end, project, content, note. Save opens the contract.

WebAdminStaff

Purchase invoices

Purchase → Invoices → New. Fill: invoice number, vendor, invoice date, due date, currency, expense category, lines (item, qty, unit price, tax), discount total, shipping fee, admin note, vendor note, terms. Save is the vendor bill. Pay from the detail.

WebMobileAdminStaff

Pay a vendor bill

On a purchase invoice → Payment. Fill: amount, date, type (cash / bank transfer / wallet), company bank account, FX INR per unit, transaction id, note. Save reduces amount due.

WebAdminStaff

Debit notes

Purchase → Debit notes → New. Fill: vendor, date, total, subtotal, tax, reference, admin note, terms, vendor note. Save credits against the vendor.

WebAdminStaff

Purchase reports

Purchase → Reports. Filter and view PO vs bills vs payments.

WebAdminStaff

Purchase settings

Purchase → Settings. Units, vendor categories (name), numbering prefixes for request/quotation/PO/invoice.

WebAdmin

Vendor portal login

Separate /purchase/portal/login. Vendor email and password from the vendor contact.

WebVendorVendor

Vendor portal orders, quotations & invoices

After portal login: view own orders, quotations, invoices; export lists. Cannot create company POs.

WebVendorVendor

Copy through the chain

On a request → Copy to quotation or order. On a quotation → Copy to order. On an order → Copy to invoice. Fields and lines carry over.

WebAdminStaff

AI extract vendor bill

Purchase invoice → Extract from PDF. Upload the bill; review vendor, dates, lines, then Save. Uses the Gemini key.

WebAdminStaffAI

Approvals

On a request/quotation/PO, submit. Approvers in the chain Approve or Reject. Status updates on the document.

WebAdminStaff

Duplicate invoice check

On Save of a vendor bill, a warning if number+vendor already exists. You can still continue.

WebAdminStaff

Insights: purchase pulse

Insights → Purchase: this month vs last month, PO versus vendor bills.

WebAdmin

15 capabilities

Attendance

Office punches, shift categories, the staff roster grid, workplaces, routes, and every Attendance settings tab — including the exact fields on New.

Attendance reports

Open Attendance to see a staff × day grid for a date range: check-in, check-out, late, leave, and missing. Click a cell to open that day’s punches, edit times if policy allows, latch a value, or jump to leave history. Export/print from the report toolbar.

WebMobileAdminStaff

Timesheet logs

Raw punch list (who, time, workplace/IP/device). Use it to audit a day when the grid looks wrong.

WebAdminStaff

Shift types (Categories)

Settings → Attendance → Categories → New. Fill: name (required), work start time, work end time, lunch start, lunch end, late grace in minutes, color, description. Defaults are 09:00–18:00 with lunch 13:00–14:00. This category is what you later drop onto the shift calendar. Edit or delete from the same list.

WebAdmin

Shift calendar (work shifts)

Settings → Attendance → Shifts → New. Pick departments and/or roles to filter staff, then select staff. Set from/to dates (default today + 60 days). Choose layout: by calendar dates, or repeat by weekday. The grid loads one row per staff and one column per day/weekday. Assign a shift type (the category you created) in each cell, optionally apply one type to all cells, skip Sundays, then Save. That roster drives late/absent vs the category’s start time and lunch.

WebAdminStaff

Workplaces

Settings → Attendance → Workplace → New. Fill: name, address, latitude, longitude, allowed radius in metres (default 100), default yes/no. Then use Assign to attach staff to a workplace so mobile/web check-in must fall inside that geofence.

WebAdmin

Work routes

Field routes: first add a route point (name, address, lat/lng, radius, optional related customer/lead, default flag). Then add a route row: staff, point, work date, stop order. Monthly assignment can push a month of points to staff. Mobile uses these for the day’s visit path.

WebMobileAdminStaff

Timesheet default settings

Settings → Attendance → Default settings. Recipients for attendance notices; toggles: allow updating check-in time, allow older dates, attendance by coordinates, device restriction, auto check-in when system opens, auto checkout, notify if check-in forgotten, email on each punch, IP restriction. Auto-checkout type: after X hours past shift end, after check-in X hours, login time X hours, or desktop silent/idle (idle hours + offset minutes). Also: forgotten-check-in delay, annual leave cycle month/year, approval-expiry notice hours, Google Maps API key, timekeeping form mode.

WebAdmin

IP and device restriction

Settings → Attendance → Restriction. Turn IP restriction on, then add allowed IPs. Turn device restriction on, then allow listed hostnames. Punches from other IPs/devices are blocked when the toggle is on.

WebAdmin

Attendance policy

Settings → Attendance → Attendance policy. Per-policy rules for how late, early leave, and missing punches are treated against the assigned shift type.

WebAdmin

Timesheet permission matrix

Settings → Attendance → Permission. Per staff (non-admin): view/edit caps for timesheet functions. Admins show as all.

WebAdmin

Mobile check-in / check-out

Staff with mobile_check_in_out punch from the EMS app (status, check-in, check-out). Server checks workplace geofence and, if enabled, valid IP/device. Dashboard tiles show in / late / missing / leave for a chosen date.

MobileWebAdminStaffIntern

Dummy attendance & punch import

Dummy attendance page to seed test rows. Import punch files onto the grid when migrating or correcting a day.

WebAdmin

Auto checkout

Cron writes a check-out when auto-checkout is on: after shift-end + X hours, after check-in + X hours, or last desktop-tracker activity + offset. Open timers are stopped.

WebTrackerAdmin

Tracking CSVs

Export visits, attendance, monthly attendance, tour weekly/monthly, and task daily/weekly/monthly as CSV from Staff tracking reports.

WebAdmin

Desktop daily / monthly attendance reports

Desktop reports hub: daily punch in/out, monthly days present, monthly in-out, and break vs idle vs online.

WebTrackerAdminStaff

7 capabilities

Leave

Request types, the Type of leave master, yearly norms, holidays, and the approval chain.

Submit a request

Leave → New. Choose type: leave, late, go early, work from home, manual time, or overtime. Set staff (self unless you have global view), start and end date/time, reason. Late/early/WFH/OT use times as well as dates. Save submits into the approval chain. View Own sees only your rows.

WebMobileAdminStaffIntern

Type of leave (master)

Settings → Attendance → Type of leave → New. Fill: type name, timesheet symbol, optional slug. When it starts: eligible after N days or months from joining (0 = day one). How days are credited: Manual (you type a yearly quota on Norms of leave) or Automatic recurring (every day/week/month/year add X days after eligibility). Edit/delete from the list.

WebAdmin

Norms of leave

Settings → Attendance → Norms of leave. For a year, set each staff member’s quota (total / remain) per leave type. This is where manual credit is typed. Change year from the toolbar.

WebAdmin

Holidays / day off

Settings → Attendance → Holidays → New, or HR → Day off. Fill: break date, type (holiday / event break / unexpected break), reason, optional department and role filters, optional repeat. Those dates do not count as missing on the attendance grid.

WebAdminStaff

Approval process

Settings → Attendance → Approval process. Add a chain: which leave types, which departments/roles/staff, and who approves in which order. Incoming requests follow that chain; Approve/Reject on the leave list applies the next step.

WebAdmin

Approve / reject

Leave list (View Global). Open a request to see times, type, and predicted punch effects (e.g. update check-in). Approve or reject; history stays on My leave history for the requester.

WebAdmin

My leave history

Personal list of your requests with status, dates, and type. No approval rights unless your role also has leave View Global.

WebAdminStaffIntern

18 capabilities

Recruitment

Jobs, candidates, interviews — New fields — plus public careers, apply, joining, and onboarding.

Recruitment dashboard

HR → Recruitment. Pipeline counts for jobs, candidates, interviews. Click a tile to open that list.

WebAdminStaff

Jobs / campaigns

Recruitment → Jobs → New. Fill: campaign name, code, workplace, salary from/to, display salary, from/to dates, job description (AI generate available — Gemini), status (1 = published on careers), headcount, linked hiring proposal, position, department, manager, reason, ages from/to, gender, experience, form of work (full time…). Save publishes when status is open; closed hides from /careers.

WebAdminStaffAI

Hiring proposals

Recruitment → Hiring proposals → New. Fill: proposal name, position, department, headcount, form of work, workplace, salary from/to, from/to dates, reason, job description, ages, gender, height, weight, literacy, experience, approver, status. Save is the plan you link on a job.

WebAdminStaff

AI CV extract

On New candidate, upload a CV → Extract. Fills name, email, phone, LinkedIn, qualification, years, skills, work rows. Review, then Save. Gemini key.

WebAdminStaffAI

Evaluations

On a candidate/interview, evaluation form: scores and comments. Save is stored on the candidate.

WebAdminStaff

Interview time conflict

When you Save an interview, calendar warns if that interviewer already has a slot.

WebAdminStaff

Candidates

Recruitment → Candidates → New. Fill: name, email, phone (required), alternate phone, LinkedIn, state, last salary, desired salary, position applied, highest qualification, current accommodation, interests, years experience, campaign, status, skills, work-experience rows. Save opens the profile. Edit from the list.

WebMobileAdminStaff

Transfer to HR / joining / onboarding

Candidate → Transfer to HR. Fill staff fields: first/last name, email, phone, password, role, active, admin, date of joining, designation, monthly salary, bank name, account name/number, IFSC, branch, PAN. Save creates the staff login. Tokened joining and onboarding forms collect the rest from the candidate.

WebAdminStaff

AI interview (admin)

Candidate → AI interview. Send link; review answers. Question count, audio/text default, and notify emails are Recruitment → Settings → AI interview.

WebAdminStaffAI

Interviews list & calendar

Recruitment → Interviews → New. Fill: campaign, interview name, day, from time, to time, interviewer, position, description. Save; conflict warning if the interviewer is booked. Calendar view of the same rows.

WebMobileAdminStaff

Careers portal (public)

Public /careers and /careers/jobs/:id. Lists jobs with status published. Apply uses the channel form.

WebPublicCandidate

Public apply form

/recruitment/forms/wtl/{campaign}/{key}. Candidate fills the channel’s fields and submits. Creates a candidate on that campaign.

WebPublicCandidate

Public interview form

Tokened AI interview wizard. Candidate answers (audio or text). Submit stores the session for staff review.

WebPublicCandidateAI

Public joining form

Tokened joining form mailed to selected candidates. Fill joining details → Submit.

WebPublicCandidate

Public onboarding form

Tokened onboarding wizard (documents, bank, etc.). Submit completes onboarding.

WebPublicCandidate

Recruitment channels

Recruitment → Careers settings / Channels → New. Fill: form name, form type, campaign (or global), language, submit button text, success message, candidate status after submit, staff to notify, notify-on-import, notify specific staff vs roles, optional reCAPTCHA, plus form-builder fields. Save issues a public apply URL for that form.

WebAdmin

Recruitment settings

Recruitment → Settings. Careers portal options; AI interview tab (question count, default answer type audio/text, notify emails). Job copy and CV extract use Settings → Google / AI (Gemini).

WebAdminAI

Mobile recruitment

EMS app: campaigns, candidates, interviews (read/create where the API allows).

MobileAdminStaff

4 capabilities

Performance

New cycle fields, leaderboards, and personal scorecards.

Company cycles & leaderboard

HR → Performance → Cycles → New. Fill: name, description, start/end (default this month), status (draft), departments, members, manager, recurring (repeat every N months, unlimited or N cycles), metric tiers. Save. Leaderboard and scorecards need staff_performance View Global.

WebAdmin

My performance

HR → My performance. Own scorecard only when the role has view_own and not global view.

WebMobileStaffIntern

Review team members

On a cycle, Review. Extra review cap on staff_performance. Scores and comments → Save.

WebAdminStaff

Recurring performance-cycle cron

Settings → Cron → performance cycles. Token URL rolls the next cycle from the recurring flags.

WebAdmin

8 capabilities

Payroll

Staff salary form, benefits, run (month/year/staff), advances, and slips.

Payroll staff profiles

Payroll → Staff → New. Fill: staff member, employee code, designation, monthly salary, date of joining, bank name, account name, account number, IFSC, branch, PAN, UAN, PF, ESI, notes, plus per-benefit amounts. Save is the row a run uses. View Global sees everyone; view_own is only your row.

WebMobileAdminStaff

Benefits

Payroll settings → Benefits → New. Fill: name, type (allowance), calc (fixed), default amount, active. Save; edit/delete from the same tab. Amounts per staff are on the payroll staff form.

WebAdmin

Payroll runs

Payroll → Runs → New. Fill: title (optional; defaults to month name), month, year (dates auto-fill from/to), notes, staff to include. Save as draft. Generate lines, finalize all, mark all paid, download bank file (CSV/Excel/preview). view_own sees own lines/slips only.

WebAdmin

Run line extras

On a run line: regenerate, deduct advance, performance bonus, PL cover late, granted extra, finalize/unfinalize, mark paid, slip PDF, email slip.

WebAdmin

Advances

Payroll → Advances → Give advance. Fill: staff, amount, given date, reason, notes. Save creates an open advance with a ledger “given” entry; recover later from a run or repay. View Own sees only your advances.

WebAdminStaff

My slips / payslip

Payroll → My slips. Open a month for the PDF. view_own vs view all slips.

WebMobileAdminStaffIntern

Payroll settings

Payroll → Settings. Company payroll options (view/edit). Benefits live on the Benefits tab.

WebAdmin

Insights: payroll pulse

Insights → Payroll: monthly net pay, salary movement, run status.

WebAdmin

7 capabilities

Staff Tracking

New visit fields, live map, and mobile GPS check-in.

Tracking hub

HR → Staff tracking (/hr/tracking). Tiles for visits, map, reports. Open a tile.

WebMobileAdmin

Visits

Tracking → Add visit. Fill: subject (auto-named if blank), visit type, tags, address + map pin (lat/lng), start date (default today), priority, related type + record (required), assignees, followers, description, status. Save is a field visit linked to that CRM/project record. Open a row for detail, status, locations.

WebMobileAdminStaff

Live map

Tracking → Map. Pins of last GPS from staff_location. Click a pin for the person.

WebAdmin

GPS save / bulk save

EMS app posts staff_location/save and save_bulk (lat, lng, time). Web map reads those points.

MobileStaffIntern

Visit check-in / check-out

On a field visit in the app: Check in / Check out at the location. Separate from office attendance punches.

MobileStaffIntern

Route on mobile

App: today’s route, place suggest, related-record search and address (same fields as the visit form).

MobileStaff

Tracking reports & settings

Tracking → Reports (needs staff_tracking reports cap). Settings: visit types, default radius. Export CSVs from Staff tracking reports.

WebAdmin

41 capabilities

Desktop Tracker

Agent plus web console: timers, screenshots, live view, DLP Add-policy fields, reports.

Electron app (Windows & macOS)

Install EMS Desktop Time Tracker (unsigned DMG/EXE). Auto-launch, tray, hidden startup. Login: HTTPS API URL, email, password. JWT in the OS keychain.

TrackerStaffIntern

Start / stop timer

Tray → Start Timer / Stop Timer, or auto-start after login. Timer is stored in local SQLite until sync.

TrackerStaffIntern

Idle detection

After three minutes idle the timer pauses; activity auto-resumes. idle_timer API records the pause.

TrackerStaffIntern

Activity monitoring

Mouse, click, keyboard, scroll. Per-minute activity % syncs to the web dashboard.

TrackerStaffIntern

Random screenshots

While Active, a screenshot every 1–10 minutes (server interval). Multi-monitor, compressed, encrypted locally, then queued if offline.

TrackerStaffIntern

Offline sync

SQLite queue retries sync_data with backoff. API URL must be HTTPS.

TrackerStaffIntern

Task timer from desktop

Pick an assigned ERP task (tasks_assigned / task_detail). Start/stop task_timer; active_task is what screenshots attach to.

TrackerStaffIntern

Check-in status & reminders

Agent reads check_in_status. Desktop settings: check-in remind interval and task notify interval (minutes).

TrackerWebStaffAdmin

Remote control poll

Agent polls control/poll for website/download/USB/app policies pushed from the web console.

TrackerAdminStaff

Live screen view

Desktop → Live Preview. Pick staff/device → start. Agent polls live_view; stop ends it. View Own = own device; View Global = any staff.

WebTrackerAdminStaff

Remote screen lock

On a device → Lock / Unlock. Agent polls screen_lock and acks. Admin only.

WebTrackerAdmin

Dashboard (web)

Desktop → Dashboard. Own or all staff (desktop_dashboard View Own / View Global). Date picker, activity %.

WebAdminStaff

Live activity

Desktop → Live activity. Who is online / active / idle right now.

WebAdminStaff

Apps & URLs

Desktop → Apps / URLs. Usage by application and website for a date range.

WebTrackerAdminStaff

Tracked hours

Desktop → Tracked hours. Date-wise active hours (idle not counted).

WebTrackerAdminStaff

Screenshots gallery

Desktop → Screenshots. Filter staff and date range. Open a thumbnail.

WebAdminStaff

Timeline

Desktop → Timeline. One staff, one day: active/idle blocks.

WebAdminStaff

Enrolled devices

Desktop → Devices (also /cops360/devices). List and detail of enrolled PCs. View Own vs Global.

WebMobileAdminStaff

Website blocking

Desktop → Website Blocking → Add. Fill: display name, URL/pattern, match type (domain), mode (block or allow), enable, scope (all staff or selected staff/devices), notes. Save. The agent polls this policy and blocks or allows matching sites.

WebTrackerAdmin

Download control

Desktop → Download control → Add. Fill: name, mode (block/allow), enable, scope (all or selected staff/devices), notes. Save. Agent applies the policy.

WebTrackerAdmin

USB storage control

Desktop → USB storage → Add. Fill: name, mode, enable, scope, notes. Save. Agent blocks or allows USB storage.

WebTrackerAdmin

File transfer control

Desktop → File transfer → Add. Fill: name, mode, enable, scope, notes, plus ticks: block USB, block browser downloads, block transfer URLs, block transfer apps. Save. Needs file-transfer CRUD permission.

WebTrackerAdmin

Application access control

Desktop → Application access → Add. Fill: name, mode, enable, scope, notes, applications (one per line). Save. Agent blocks or allows those apps.

WebTrackerAdmin

Desktop settings

Desktop → Settings. Intervals (screenshot, sync, idle timeout), screenshot/events/token retention days, categories, Focus rules, department productivity, URL/app patterns, discovered mappings. Save writes what the agent polls.

WebAdmin

Break report

Desktop reports → Breaks: breaks taken vs idle vs online for the date range.

WebAdminStaff

Time & motion / summary / activity

Desktop reports → Time & motion / summary / organisation activity: productive time and previous-month comparison.

WebAdminStaff

Hourly activity heatmap

Desktop reports → Heatmap: users present per hour and average activity %.

WebAdminStaff

Productivity & teams insight

Desktop reports → Productivity: % and team-wise outliers.

WebAdminStaff

Logs report

Desktop reports → Logs: application usage and website visits.

WebAdminStaff

Manual time report

Desktop reports → Manual time: user time-log entries with source and approval status.

WebAdminStaff

Usage report

Desktop reports → Usage: breakdown by category, apps, and productivity.

WebAdminStaff

Timesheet report (desktop)

Desktop reports → Timesheet: hours from the agent vs ERP timers.

WebAdminStaff

Alert report (desktop)

Desktop reports → Alerts: tracker alert rows for the range.

WebAdmin

WhatsApp file-guard extension

Bundled with the agent: guards WhatsApp file sends on the desktop. No extra form — enabled with the build.

TrackerWhatsAppAdmin

Week summary & settings APIs

Agent calls week_summary, settings, policy_versions, dashboard, screenshots, logout on the stafftraking API.

TrackerStaffIntern

Tray menu

Tray: Open Dashboard, Start Timer, Stop Timer, Logout, Exit.

TrackerStaffIntern

Local encryption

Local store is encrypted with HMAC integrity; JWT in keytar. Tamper fails sync.

TrackerStaffIntern

Own vs global desktop reports

Role ticks: desktop_report, desktop_tracker_report, desktop_live_view each have View Own and View Global.

WebAdminStaff

Category & productivity mapping

Desktop settings → patterns. Add URL/app pattern, map to a category, Focus rules, department productivity. Create/edit/delete via desktop_settings.

WebAdmin

Screenshot retention

Desktop settings: days to keep screenshots, events, and tokens. Older files are pruned.

WebAdmin

Task notifications on agent

Desktop settings: task notify interval (minutes). Agent reminds about assigned tasks.

TrackerStaffIntern

4 capabilities

Assets

New asset fields, allocation to staff, and return.

Asset list & detail

Assets → New. Fill: name (required), code, quantity, unit, serial, group, department, location, purchase date, warranty period, unit price, supplier name/phone/address, description. Save adds it to the register. Open a row for history.

WebMobileAdminStaff

Allocations

On an asset → Allocate. Pick staff, quantity (cannot exceed remaining), date. Save assigns it. List of allocations on Assets → Allocations.

WebAdmin

Evictions

On an allocation → Return / Evict. Records the asset coming back to stock.

WebAdmin

Asset groups settings

Setup → Asset groups → New: name. Pick the group on the asset form.

WebAdmin

1 capabilities

Vault

New entry types (server, login, FTP, social, license) and visibility.

Password vault

Vault → New. Type: server / login / FTP / social / license. Fill: title, then type-specific fields (server address, port, username, password, FTP protocol/root, social platform/profile URL, license item URL/purchase code/domain/type/expiry/support expiry), description, customer, project, share in projects, visibility, visible staff. Save. Popup viewer; stats; mobile list.

WebMobileAdminStaff

4 capabilities

Knowledge Base

New article (subject, group, body) and optional customer-portal KB.

Articles

KB → New. Fill: subject (required), slug, group, body, active, staff-only. Save. View by slug. Customers see non-staff articles if portal KB is on.

WebMobileCustomerAdminStaffCustomer

Groups

KB → Groups → New. Fill: name, slug, description, color, order, active. Save is the group drop-down on New article.

WebMobileAdmin

Feedback report

KB → Feedback. Counts of helpful / not helpful per article.

WebAdmin

Show on customer portal

Settings → Customer portal: use_knowledge_base and knowledge_base_without_registration. Tick to show articles on the classic portal.

CustomerAdminCustomer

3 capabilities

Documents

Master documents with merge fields, then send.

Sent document log

Documentation → Sent log. Who was mailed which document.

WebAdminStaff

Master documents & merge fields

Documentation → Settings → Master documents → New. Fill: title, subject, email message, content (merge fields), company letterhead, active. Merge-fields list is the tokens you insert in content. Separate from Send.

WebAdmin

Create documents

Documentation → Send / download. Fill: related type + entity, master template, email, name, company, phone, date, staff name, address/city/state/ZIP/country, merge-field extras, subject, email body, attach PDF + PDF content. Send emails and writes the sent log. Save draft keeps it without mailing.

WebAdminStaff

1 capabilities

Alerts

New rule: type, cooldown, recipients.

Alert rules

Alerts → New. Fill: name, rule type (e.g. staff_inactive), cooldown hours (default 24), recipient staff ids, description, active. Save. Logs and health on the same module; mobile alerts meta.

WebMobileAdmin

1 capabilities

Agencies

New agency (name, phone, category) when the agencies table is present.

Agencies & categories

Agencies → New (when tblagencies exists). Fill: name, phone, email, address, description, category, active. Categories → New: name, color. Save.

WebMobileAdminStaff

8 capabilities

Settings

General, company, localization, Gemini, Pusher, Flutex — field by field.

General

Settings → General. Fill: company name, main domain, phone, logo filenames, favicon, allowed upload types. Save applies across the shell.

WebAdmin

Company information

Settings → Company. Fill: legal name, address, city, state, country code, VAT/GST, company phone, postal code, info format (merge tokens for PDFs).

WebAdmin

Localization

Settings → Localization. Date format, time format, timezone, language, require VAT field. Save changes how dates print.

WebAdmin

Google / AI

Settings → Google / AI. Gemini API key and optional model (blank = gemini-2.5-flash-lite). Used by: WhatsApp AI Reply, mailbox AI Reply, task checklists, proposal extract, purchase-bill extract, job copy, CV extract, Automail, meeting notes. Meetings may add a separate OpenAI key for Whisper.

WebAdminAI

E-Sign

Settings → E-Sign. Legal text plus ticks for estimate/proposal identity confirmation when the document is accepted.

WebCustomerAdmin

Pusher.com

Settings → Pusher. App id, key, secret, cluster. Ticks: realtime notifications, desktop notifications, auto-dismiss seconds. Needed for staff chat and live toasts.

WebAdmin

Flutex Admin API

Settings → Flutex. Mobile / EMS API options used by the phone app.

WebMobileAdmin

Document types

Setup → Document types → New: name. Staff form uploads use these types.

WebAdmin

8 capabilities

Mobile

Extra Flutex surfaces that are not just mirrors of a single web screen.

Employee profile

EMS app → Profile. Name, photo, change password (employee_profile paths).

MobileAdminStaffIntern

Contacts

EMS app → Contacts. List/detail of CRM contacts (same people as customers/leads).

MobileAdminStaff

WHMCS hub overview

EMS app → Accounting hub. Counts for orders, proformas, GST — not a separate product.

MobileAdminStaff

Roles catalog

EMS app can read the permission catalog (admin). Same matrix as Settings → Roles.

MobileAdmin

Catch-all module lists

Read-shaped lists for remaining Flutex paths (assets, KB, vault, agencies, vendors, expenses, subscriptions, GST credit notes, sale goals, service items, payments, purchase invoices, alerts, recruitment). Writes may return “not available on the new server yet.”

MobileAdminStaff

Email compose from phone

EMS communicator: email accounts, inbox, counts, refresh, compose (To/CC/BCC/subject/body), send, bulk, star, read — same fields as web Compose.

MobileAdminStaff

CRM lookup from communicator

While chatting or mailing, crm-lookup by phone/email opens the matching lead/customer.

MobileWhatsAppAdminStaff

Legacy Flutter sales screens

The Android/iOS app still has leftover classic invoices/estimates/items screens. Those modules are removed from the web SPA; billing on web is Accounting (proforma/GST).

MobileAdminStaff

5 capabilities

Out of scope

Named so you do not hunt for modules that are not in this product.

No POS

There is no point-of-sale module in this product — do not look for a till or barcode checkout.

WebAdmin

No manufacturing / MRP

No BOM, shop floor, or manufacturing planning screens.

WebAdmin

No warehouse stock

No warehouse inventory beyond asset quantity history and purchase vendor items.

WebAdmin

No Vue customer login

Customer portal options and contact module flags are stored here; invoice/ticket login for customers remains the classic clients area, not this Vue shell.

WebCustomerAdminCustomer

No Twilio channel

WhatsApp uses the chat gateway and Meta Cloud API, not Twilio. Do not configure a Twilio SID.

WhatsAppAdmin

2 capabilities

Utilities

Catch-all permissions still in the role matrix.

Utilities permission

Role matrix → Utilities view. Gates miscellaneous tools that are not a full module.

WebAdminStaff

Support permission

Role matrix → Support view, alongside tickets. Tick it if the staff should see support extras.

WebAdminStaff

1 capabilities

Devices

Enrolled device visibility; the working UI is under Desktop Tracker.

Devices permission

Role: View Own vs View Global on enrolled EMS devices. The working UI is Desktop → Devices.

WebMobileAdminStaff

No features match that filter. Clear search or choose All.

Source: COPS 360 Laravel + Vue modules, permission catalog, Vue router, Flutex admin API, stafftraking API, and EMS Desktop Tracker. Classic Perfex Sales (items / estimates / classic invoices) is disabled; billing is Accounting (WHMCS proforma / GST). Some Flutex write paths still return “not available on the new server yet.” Customer portal runtime remains the configured clients area; this staff app owns the settings and the CRM records behind it.