Customers, invoicing, collections, cash register, online payments, customer portal, WhatsApp with artificial intelligence, technical support, NOC monitor, FTTx plant and native TR-069. All in a single system, and every screenshot on this page is from the real system running.
One panel for technical operations and another for the money. Click any screenshot to see it larger.
Each block is a real CRM screen, not a designer's mockup.
Contract, services, balance, billing cutoff day, documents and complete history. You search by name, phone, contract, PPPoE user or address.
The system builds the list of pending payments and from there you collect. The cash register balances the shift on closing, with a count and a breakdown by payment method.
A screen separate from the CRM, light and mobile-first: unassigned tickets, "my day", customers and network status. When you open a customer you see their service, their ONT and their NAP box.
Huawei and VSOL OLTs, Mikrotik routers via API and ONTs via TR-069 with an ACS built into the system. Creating a service creates the PPPoE and leaves the equipment ready, without entering the equipment console.
Daily usage per PPPoE customer, with download and upload separate and a ranking of the heaviest users. Useful for capacity planning and for justifying a plan upgrade.
Bot connected to the official WhatsApp API: it answers questions, receives fault reports, collects payment and escalates to a human when needed. And it learns who each number belongs to.
The monitor polls each device every minute, knows when something stopped responding and alerts the NOC group before the first phone rings. It is not a separate Zabbix: it lives inside the CRM, so every outage already knows which customers it affects.
Status per device
| Device | Type | Status | Latency | 24 h availability |
|---|---|---|---|---|
| OLT-CENTRO10.0.0.11 | OLT Huawei MA5608T | Online | 2 ms | 99.98 % |
| OLT-NORTE10.0.0.12 | OLT VSOL V1600D | Online | 4 ms | 99.91 % |
| MK-BORDE-0110.0.0.1 | Mikrotik CCR2004 | Online | 1 ms | 100 % |
| MK-NODO-SUR10.0.0.21 | Mikrotik RB5009 | CPU 87 % | 6 ms | 99.62 % |
| RADIO-CERRO10.0.0.34 | 5 GHz point-to-point link | Down 8 min | — | 96.40 % |
Latest events
Network operations center monitor view rebuilt on this page with sample data, so that it reads well on mobile. The screenshots with the browser frame and the enlarge button are from the real system.
Each device family is queried over the protocol it really supports, not everything by ping.
Temperature, usage of each PON port, registered ONTs, ONTs down and the optical power each one receives. Huawei and VSOL with their own OIDs.
CPU, memory, uptime, active PPPoE sessions and traffic per interface. No agents or scripts to maintain on the router.
Whether the ONT answers, with what signal and since when. What the OLT sees is cross-checked with what the ONT itself says, which don't always match.
Latency, packet loss and availability of radio links, towers, DNS and internet exits, with history to claim from the carrier.
That the billing cron ran, that the WhatsApp queue didn't clog and that last night's backup completed. A CRM that is down silently is worse than a router that is down.
Every reading is stored. You can pull the real uptime of a site from last month without depending on anyone's memory.
Most outages happen when nobody is in front of the screen. That is why the alert goes out on Telegram with what is needed to decide whether someone gets up or waits until tomorrow.
Alerts come out in this format: device, since when and how many people it affects.
Each customer hangs from a specific thread: an OLT, a PON port, a splitter, a NAP box and a port on that box. When that is written down, an outage is solved by phone; when it isn't, it is solved by opening boxes to see which one it was.
The salesperson promises Thursday's installation and the technician arrives at a full NAP. With occupancy on screen that stops happening: coverage is checked by address and the system tells you which box has a free port.
Occupancy per PON port
| Port | Splitter | NAP box | Occupancy | Status |
|---|---|---|---|---|
| 0/1/0 | 1:8 | NAP-CTR-01 | 7 of 8 | Normal |
| 0/1/1 | 1:16 | NAP-CTR-02 | 11 of 16 | Normal |
| 0/1/2 | 1:16 | NAP-SUR-04 | 16 of 16 | No ports |
| 0/1/3 | 1:8 | NAP-SUR-07 | 8 of 8 · 14 ONTs down | Outage #218 |
| 0/1/4 | 1:32 | NAP-PON-11 | 13 of 32 | With headroom |
NAP-CTR-01 box · 8 ports
19.594, −100.389Optical budget · port 6 (customer FN000412)
Today's reading: −21.4 dBm. 30 days ago it was −19.8 dBm: the system flags the progressive drop before the customer is left without service.
View of the plant module rebuilt on this page with sample data.
The OLT sees a new unauthorized ONT and the CRM shows it with its serial number and its PON port. You pick the customer and authorize from there, without opening a console.
When the ONT is authorized, the PPPoE is created on the Mikrotik, the NAP port is occupied and its speed profile is applied. One operation, not four screens.
If several ONTs on the same port go down at once, it is fiber, not their routers. One outage is opened with the list of affected customers and the alert goes out only once.
Each ONT's signal is stored day by day. A degrading fiber shows up in the curve weeks before the customer is left without internet.
NAPs, poles and customers geo-referenced. The technician opens the map on their phone and sees which box the customer they are visiting hangs from.
When a customer moves or a port is rebalanced, the NAP and port are changed in one step, and the occupancy of both boxes adjusts itself.
MA5608T and MA5683T over SNMP and command line: autofind, authorization, signal per ONT and reboot.
V1600D and equivalents, with their own command set and line profiles.
The OLT in bridge mode and the Mikrotik as concentrator: it is the most common setup and is supported out of the box.
If you also have radio customers, they coexist in the same inventory with their sector and tower.
The CWMP server runs inside the system itself. The ONT sends its Inform to your domain and appears in the customer record without anyone registering it by hand. No GenieACS, no Node, no extra database to back up. And if you already have GenieACS set up, it can still be used through the API.
Parameter tree
The parameters marked in blue are the ones the customer just changed from their portal.
Device task queue
CWMP session
View of the TR-069 console rebuilt on this page with sample data. The parameter names and RPCs are the real ones from the standard.
TR-069 has a reputation for being complicated because almost nobody explains what each thing does. This is what the system actually uses, and what it does for you.
| RPC | What it is used for |
|---|---|
| Inform | The device introduces itself and is linked to the customer by its serial number. |
| GetParameterValues | Optical signal, firmware, current SSID, WAN status and connected devices. |
| SetParameterValues | Change WiFi, channel, VLAN, DNS or the Inform interval itself. |
| AddObject / DeleteObject | Create or remove the WAN connection, a guest SSID or a port mapping. |
| Download | Firmware or configuration file, one by one or in batches with a time window. |
| Reboot | Remote reboot from the record, from support or from the WhatsApp bot. |
| FactoryReset | Leave the device blank before removing it or reinstalling it at another address. |
| ConnectionRequest | Talk to the ONT right now, without waiting for the next Inform. |
| TR-143 | Ping, traceroute and download test launched from the customer's device. |
The ONT comes out of the box, sends its first Inform and receives its profile: WiFi, PPPoE, VLAN and management password. The technician mounts it and leaves.
One profile for the Huawei units, another for the VSOL ones, another for business routers. You change the profile and it applies to all devices in that group.
From the portal or the app they set the name and password they want. Underneath it is a SetParameterValues, and that call to support ceases to exist.
You select the devices of a model, choose the overnight window and the system updates them with retries and a report of which ones were left out.
Optical signal, WAN status, devices connected to the WiFi and a ping test from the customer's own router. Many visits are cancelled right here.
Different CWMP username and password per device, HTTPS, ConnectionRequest with digest and a list of allowed origins. An open ACS is a door into your entire plant.
These three pieces don't work separately. When someone reports a fault on WhatsApp, the bot checks the TR-069 of their ONT, checks the PON port it hangs from in the FTTx plant and checks whether the NOC monitor has an open outage on that node.
That answer comes from crossing the NOC monitor with the FTTx plant. Without that, the bot can only say "we will look into it".
A failed visit is two trips and an annoyed customer. When the technician marks "On the way", the customer gets a WhatsApp and can follow the visit from their portal.
The texts are the ones the system sends, word for word.
From the phone they mark the status with one tap. They don't write messages or copy phone numbers: the alert goes out on its own.
It says "between 4:00 and 6:00 pm" because that is what can be met. Promising an exact time is promising an annoyed customer.
The "make sure an adult is home" notice is the only thing between a visit that works the first time and a "nobody was there".
Payment link through WhatsApp or from the customer portal. The payment comes in, is applied to the invoice and the service reactivates itself.
Each customer signs in with their email and sees their own, without calling the office. That lowers calls and raises collections.
They don't show in a five-minute demo, but they are the ones that prevent scares.
Upload your Excel, it shows you how it understood each column, you can simulate without writing anything and, if something goes wrong, you undo the whole batch.
Automatic copies that leave the server itself, so that a hardware problem doesn't take your backups with it.
Superadmin, admin, purchasing, supplier, cash and customer. Each role sees only what is theirs, checked on every request.
Each company with its own database and its own files. Neither a customer nor a document gets mixed between companies.
The month's invoicing, payment reminders, suspensions, device reading and notifications run on their own and leave a record.
Changes to customer records, logins and sensitive actions are recorded with user and date.
A device that goes down or a new outage reaches the NOC group without anyone watching the screen.
Endpoints for PPPoE, TR-069, FTTx plant and whatever you already have set up (GenieACS included), with keys and a call log.
The system can be opened to an outsider with creations and deletions blocked, with no fear that they touch anything.
If you also want to control spending and the warehouse, the ERP lives in the same system with the same catalogs.
Who requests, who authorizes and what step each request is at.
Purchase orders, comparison, payment complements and supplier files.
Stock, movements and equipment assigned to each technician.
Payments, materials and work clothing, openings and rewards.
Expense accounts, budgets per area and control of what has been spent.
Sales, collections by month and by employee, services and customers by zone.
Fisher Networks is an ISP with a Single Concession from the IFT. This CRM is the one we use every day to invoice, collect, handle WhatsApp and watch our own network. Everything you see here exists because we needed it first, and if something breaks we fix it the same day, because it breaks us too.
With Huawei (MA5608T, MA5683T) and VSOL OLTs, with Mikrotik through its RouterOS API and with ONTs through TR-069 using the ACS built into the system. If you have another manufacturer, tell us the model and we will check the integration before you sign up.
It is ours: the CWMP server runs inside the same system, so you don't have to set up or back up a separate GenieACS with its Node and its MongoDB. The ONTs send their Inform to your own domain and are linked to the customer by serial number. If you already have a GenieACS running and prefer not to move it, it can still be used through the API. See the TR-069 console.
Read its optical signal and WAN status, change the WiFi name and password, change channel or VLAN, reboot it, factory-reset it, upload firmware in batches in an overnight window and launch a ping or a traceroute from the customer's own device (TR-143). The customer can also change their WiFi themselves from the portal.
No. The monitor lives inside the CRM and polls the devices every minute over SNMP, ICMP and the RouterOS API. The advantage of it being inside is that every outage already knows which customers it affects: when a PON port goes down, a single outage is opened with the list of those affected instead of fourteen loose tickets. See the monitor.
Yes, and it is the normal case. You start by importing OLTs, PON ports and NAP boxes, and from there the system itself fills in the rest: each ONT the OLT already has registered is hung from its port, and the NAP port is completed at the technician's first visit. After a few weeks of normal operation the plant is documented without stopping anyone to do it. See the plant module.
With the importer: it generates a template, shows you how it understood each column, lets you simulate the load without writing anything and apply it when it looks right. If something goes wrong, the whole batch is undone.
Yes. Each company has its own database and its own file folder: you share no tables with anyone. It is one of the things we test explicitly in every update.
Yes, Meta's official WhatsApp Cloud API, with your own number. No unofficial apps that break or get your number blocked.
When the customer sends the photo or PDF of their transfer, the system interprets it, extracts amount, date and reference, and leaves it in an inbox for the cashier to confirm with one click. The final decision is always made by a human.
Yes, the development is ours. Custom changes are quoted separately according to scope, and stay on your installation.
Yes. The Free plan comes with a 7-day demo, and we can set you up a demo with sample data to walk through with your team. Write to proyectos@fishernetworks.net.
We set up a demo with sample data and walk you through it. If it works for you, you choose a plan.