Selected deployments from our VoIP, infrastructure, and automation work. Client names are withheld under confidentiality, so each study is described by organisation type and scale.
A BPO call centre running FreePBX with 55 agents on extensions 2000 to 2054, with call detail records split across two separate MySQL servers.
Reporting was manual. Supervisors had to assemble figures by hand from two databases, so reports arrived irregularly and in inconsistent formats. Timezone differences between the reporting audience and the switch made the raw records easy to misread.
A set of n8n workflows querying both CDR databases, with timezone correction applied to the reporting window. Output is generated as pivot table Excel summaries and delivered over SMTP on daily, weekly, and on demand schedules.
Reporting now runs without manual assembly. Supervisors receive a consistent report format on a fixed schedule rather than requesting figures each time.
A hosted PBX operator serving several client companies from a single FreePBX installation.
The estate had no tenant separation. All extensions, calls, and recordings were visible from one administrative interface, which made client self service impossible without exposing other clients’ data.
A Laravel 11 and Vue 3 portal with enforced multi tenant data isolation, extension synchronisation from the FreePBX user manager tables, and a browser based WebRTC dialler with full call controls. Call recordings stream from the production recording server through a separate Node.js service. Deployed with Docker behind nginx, with Redis handling sessions and queues.
Each tenant sees only its own extensions, call history, and recordings, and agents place calls directly from the browser without a desk phone or softphone installation.
A call centre operation needing agents to reach their own call data from a portal hosted outside the PBX network.
The agent portal ran on shared hosting while the call data lived in MySQL on the PBX VPS. Opening that database to a shared hosting environment was not an acceptable exposure.
An n8n instance on the VPS acting as a query proxy. The portal calls webhook endpoints protected by a shared secret, n8n executes the queries server side and returns only the fields required for the response. The database accepts connections from the VPS static IP alone.
Agents reach their call data through the portal while the database itself stays closed to the public internet, with no direct credentials held on the shared host.
We respond within one business day.