Administration
Operations log
In one line: a single screen where every long-running job your company started reports on itself — what it is, how far it got, and when it began — so you can close the window and let the work carry on.
Plan: No particular plan and no activation — it appears on every plan. But opening it is for the company admin (company_admin) alone; anyone else who tries is turned away at the door and sees an error message where the table should be. The sidebar row itself may still show for an employee holding an admin permission — "Access CRM", for instance — while they are inside the CRM or Accounting workspace, without opening anything for them. Start with Teams & permissions.
Overview
Some jobs outlive the request that started them: importing thousands of contacts, for example, is not finished the moment you press the button. The Operations log is where those jobs report on themselves. The page header says the whole idea: "Every long operation — import, export, broadcast — reports here. Close the window; the work carries on."
Its practical value is that it frees you from sitting in front of a progress bar. The operation is recorded before any work begins, and its progress is stamped after every batch, so you can close the popup — or the whole tab — and come back to find the percentage where it left off, or the result if it has finished.
Note: The log only reports. Nothing is started from it, nothing is stopped, and a failed operation is not retried here. Every operation is launched from its own screen; this screen tells you what happened.
Where do I find the log?
Under the System header in the sidebar, a row named Operations log. It is present in all three workspaces — Human Resources, CRM and Accounting — and opens inside the workspace you are already in, so it never throws you into another one.
The page is web-only: it does not appear in the employee app or on mobile.
How do I read a row?
The table shows every operation your company has run, most recently started first, with a count pill above it for what is in front of you ("{n} operations"). Five labelled columns, followed by a sixth with no heading that carries the Undo button:
- Operation — the operation's name as its producer wrote it, rendered in Arabic in both interfaces. Today a single producer writes to the log: WhatsApp contact import (on screen: «استيراد جهات اتصال من واتساب»); any new type will appear later under its own correct name automatically.
- Status — a chip carrying one of exactly four statuses: Running, Complete, Failed, Interrupted.
- Progress — "processed / total" for every row, with a percentage added for running rows only.
- Run by — who started the operation.
- Started — the date and time it began, to the minute, in Latin digits and the Gregorian calendar whatever the browser's language.
And if your company has not run anything yet, the page says so outright: "No operations yet. The first import or export shows up here."
Note: The Run by column shows a dash "—" on every row today, because the one current producer does not pass the name of whoever started the operation. The column is ready; it is the data that has not reached it yet.
How do I follow an operation while it runs?
Open the page and leave it. As long as at least one row in the table is Running, the screen refreshes itself every 3 seconds, so you watch the percentage climb without pressing anything. When nothing is running, refreshing stops entirely.
Refreshing also works only while the tab is visible in front of you: switch to another tab and it stops, come back and it resumes. That is deliberate — so a forgotten background page does not burn server resources for nothing.
Tip: The percentage is always clamped between 0 and 100, and an operation with nothing to do (a total of zero) shows 100% rather than an odd number — it genuinely is complete, not broken.
Why does an operation show as "Interrupted"?
A running operation reassures the log about itself with a steady heartbeat. If its runner falls silent for more than 5 minutes — a disconnection, or a server restart — the row is shown as Interrupted, not Running.
The distinction matters in practice: without it the screen would show a percentage that never moves, for ever, while you assume the work is still going. The calculation is made on every read, so nothing needs doing to make it true.
How do I find out why it failed?
If an operation ended as Failed and recorded an error message, the text appears directly beneath the status chip in warning colour — on the row itself, with no details view to open. Nothing appears under the other statuses, nor under a failed row that recorded no text.
How do I filter the log?
Above the table are two dropdowns, and changing either one reloads the table immediately:
- Type — its first option is All types, then the types your company has actually run; what you have never run does not clutter your list.
- Status — its first option is All statuses, then the four: Running, Complete, Failed, Interrupted.
Caution: The Type dropdown's options are shown today by their raw internal identifier (such as wa_directory_import) rather than a readable name. The list is correct and works, but its text is not yet a name a person would read.
There is no free-text search on this screen, no filtering by date or by who ran it, and no re-sorting by column — the order is fixed: most recently started first.
How do I undo a WhatsApp contact import?
In the sixth column — the last one, with no heading — an Undo button appears, and only on the rows that accept an undo, which today means WhatsApp contact import and nothing else. It is not a general undo for any operation: it does not appear at all on a row of another type.
Caution: The Undo button on this screen does not work at present. Press it and an error appears; nothing is deleted and the table does not change — the fault is in the address the button calls, not in your data. Do not rely on it until it is fixed.
The undo that does work lives in the import window itself: Contacts → the Import from WhatsApp button. When the import finishes, the window shows its result with an Undo this batch button beneath it; press that and the contacts created by that batch are deleted, and the system confirms with "The import was undone." The button lives inside that window alone: if you close it after the import has finished, there is no way from the interface to undo that batch, because reopening the window shows the selection screen rather than the previous batch's result.
Tip: Undoing does not wipe out your work. Every contact that was edited after it was created stays exactly as it is and is not deleted — an hour spent tidying contacts after an import is not swallowed by a single button, and in that case the message tells you: "Undone. Contacts that had been edited were kept." The deletion is a soft delete, as it is for bulk deletion elsewhere in the product.
What the log does not do
So you don't go looking for what isn't there:
- It does not start, stop, or retry. No run button, no cancel, no restart for a failed operation — the row is a record, not a steering wheel.
- It does not notify you when something finishes. No email and no in-app notification; the only way to learn the outcome is to open the page.
- No details page. Rows are not clickable, and the only button inside a row is Undo; each operation's result counts are stored but not displayed.
- It does not show a finish time — the only time column is Started.
- The log itself cannot be exported to CSV or PDF.
- Nothing is ever pruned from it. There is no row limit and no automatic deletion over time; the full history is shown in one table, and it grows with the age of the company.
- It is not Field Ops. Field Ops is an entirely different module for dispatching field jobs and tracking couriers; it has nothing to do with this screen despite the similar word.
FAQ
Q: I started an import and closed the window — is it lost? A: No. The work outlives the window that launched it. Open the operations log and you will find the percentage where it got to, or the result if it has finished.
Q: Why don't I see "Operations log" in the sidebar? A: Opening it is for the company admin alone — anyone else who tries is refused and sees an error message. In the Human Resources workspace the row does not appear for an employee at all. Inside the CRM and Accounting workspaces, though, the row may show for an employee granted an admin permission such as "Access CRM"; clicking it will not open anything for them.
Q: The percentage is stuck and won't move — what's wrong? A: Look at the status column. If the operation's runner has been silent for more than 5 minutes the status turns to Interrupted, so you know the work was cut off instead of waiting on a number that will never advance.
Q: I tried to run the same operation twice and the second one was refused. A: More than one live operation of the same type and scope at a time is not allowed. Wait for the running one to finish. And if the older one really had stopped, starting a new one marks the old one Interrupted instead of letting it keep claiming to be alive.
Q: What exactly does Undo delete — does it wipe all my contacts? A: No. It deletes the contacts created by that batch alone, and keeps every contact that was edited after it was created.
Q: Why isn't the name of whoever ran the operation shown? A: The column is there, but the only producer today does not pass the name of the person who ran it, so a dash "—" is shown on every row.
Q: The hint mentions "export" and "broadcast" — why don't I see them? A: Because the only producer writing to the log today is the WhatsApp contact import. The screen is built to receive other types with no changes, but they have not arrived yet.
Q: Does the table refresh while I'm in another tab? A: No. The 3-second refresh runs while the tab is visible and there is a running row; it stops entirely in any other case. Return to the tab and it resumes by itself.
Q: Does this screen hold my customers' data? A: No. The operation's name describes the operation, not its subject, and the stored results are counts, not identities — the log says "what happened", never "to whom".
Quick reference
| Action | Path |
|---|---|
| Open the log | Any workspace → System header → Operations log |
| Filter by type | First dropdown above the table: All types, or one type |
| Filter by status | Second dropdown above the table: All statuses / Running / Complete / Failed / Interrupted |
| Follow progress | The Progress column — refreshes every 3 seconds while a Running row exists and the tab is visible |
| Find out why it failed | The Status column on the failed row — the text under the chip |
| Find the start time | The Started column — to the minute |
| Undo a WhatsApp import | The row's last column → the Undo button |