Welkom terug<% if (typeof user !== 'undefined' && user && user.username) { %>, <%= user.username %><% } %>

Jouw consultancy command center — live inzicht in cliënten, trajecten en platformstatus.

<% if (activeAdvice.length > 0) { %> <% } %>
<% var svcList = servicesStatus || {}; Object.keys(svcList).forEach(function(key) { var s = svcList[key]; var on = s.online !== false; %>
<%= s.label %>
<%= on ? 'Online' : 'Offline' %>
<% }) %>

Enterprise Dashboard

Realtime consultancy intelligence platform

<%= stats.activeEngagements %>
Actieve Engagements
van <%= stats.totalEngagements %> totaal
<%= totalRackDevices + totalNetworkDevices %>
Infra Devices
<%= totalRacks %> racks · <%= totalDiagrams %> diagrammen
<%= overdueTasks %>
Taken over tijd
<%= completedTasks %>/<%= totalTasks %> voltooid
<%= assessmentsCount %>
Assessments
Data quality engine
Clients Status
<% var sts={active:'Actief',leads:'Lead',paused:'Paused',archived:'Archived'};var clrs={active:'var(--green)',leads:'var(--accent)',paused:'var(--orange)',archived:'var(--text-dim)'};var maxC=Math.max(stats.active,stats.leads,stats.paused,stats.archived,1); for(var k in sts){var cnt=stats[k]||0;%>
<%= sts[k] %><%= cnt %>
<% } %>
Engagements per Type
<% var tCol={assessment:'var(--cyan)',architecture:'var(--purple)',implementation:'var(--green)',monitoring:'var(--orange)',consulting:'var(--pink)',training:'var(--red)'};var maxE=Math.max(...engagementByType.map(function(e){return e.cnt}),1); engagementByType.forEach(function(e){ %>
<%= e.type %><%= e.cnt %>
<% }) %>
Recent Assessments
<% if(recentAssessments.length===0){ %>
Nog geen assessments
<% }else{ %>
<% recentAssessments.forEach(function(a){ %>
Assessment voor <%= a.client_name %>
<%= new Date(a.created_at).toLocaleDateString('nl-NL',{hour:'2-digit',minute:'2-digit'}) %>
<% }) %>
<% } %>

Engagements

<%= stats.totalEngagements %> total · <%= stats.activeEngagements %> active

By Type
<% engagementByType.forEach(function(e){ %>
<%= e.type %><%= e.cnt %>
<% }) %>
By Status
<% engagementByStatus.forEach(function(e){ %>
<%= e.status.replace('_',' ') %><%= e.cnt %>
<% }) %>
Alle Engagements
<% if(allEngagements.length===0){ %>
Nog geen engagements
<% }else{ %> <% allEngagements.forEach(function(e){ %><% }) %>
TitelCliëntTypeStatus
<%= e.title %><%= e.client_name %><%= e.status %>Details
<% } %>

Finance

Urenregistratie en facturatie

<%= totalHours.toFixed(1) %>
Total hours
<%= billableHours.toFixed(1) %> billable
€<%= totalInvoiced.toFixed(0) %>
Invoiced
€<%= totalPaid.toFixed(0) %> paid
€<%= totalOutstanding.toFixed(0) %>
Outstanding
Recente urenregistraties
<% if(timeEntries.length===0){ %>
Nog geen uren geregistreerd
<% }else{ %><% timeEntries.forEach(function(t){ %><% }) %>
DatumUrenCliëntEngagementOmschrijving
<%= t.date %><%= t.hours %><%= t.client_name||'-' %><%= t.engagement_title||'-' %><%= t.description||'' %>
<% } %>
Recente facturen
<% if(invoices.length===0){ %>
Nog geen facturen
<% }else{ %><% invoices.forEach(function(i){ %><% }) %>
FactuurnrCliëntBedragStatus
<%= i.number %><%= i.client_name %>€<%= (i.total||0).toFixed(2) %><%= i.status %>Open
<% } %>

Infrastructure

Racks, netwerkapparatuur, verbindingen & architectuurdiagrammen

<%= totalRacks %>
Server Racks
<%= totalRackDevices %> devices
<%= totalNetworkDevices %>
Netwerk Devices
Switches, routers & firewalls
<%= totalDiagrams %>
Diagrammen
Data, netwerk & systeem
Server Racks <% if(racks.length>0){ %>Alle<% } %>
<% if(racks.length===0){ %>
Nog geen racks
<% }else{ %><% } %>
Netwerk Devices <% if(netDevices.length>0){ %>Alle<% } %>
<% if(netDevices.length===0){ %>
Nog geen netwerk apparaten
<% }else{ %><% } %>
Architectuur Diagrammen <% if(diagrams.length>0){ %>Alle<% } %>
<% if(diagrams.length===0){ %>
Nog geen diagrammen
<% }else{ %>
<% diagrams.forEach(function(d){ %><%= d.diagram_type.replace(/_/g,' ') %><%= d.name %><%= d.client_name %><% }) %>
<% } %>

Tasks

<%= completedTasks %>/<%= totalTasks %> completed <% if(overdueTasks>0){ %><%= overdueTasks %> overdue<% } %>

<%= completedTasks %>
Voltooid
<%= totalTasks-completedTasks %>
Open
<%= overdueTasks %>
Over tijd
<% if(allTasks.length===0){ %>
Nog geen taken
<% }else{ %>
<% allTasks.forEach(function(t){ var io=t.status!=='done'&&t.status!=='cancelled'&&t.due_date&&new Date(t.due_date)
<%= t.priority %>
<%= t.title %><%= t.client_name %> · <%= t.engagement_title %>
<%= t.status.replace('_',' ') %><% if(t.due_date){ %><%= new Date(t.due_date).toLocaleDateString('nl-NL') %><% } %>
<% }) %>
<% } %>

Advice & Consulting

Jouw complete consultancy werkplaats — van discovery tot delivery

Mek-Tech Consultancy Hub

Assessments, architectuur, data quality, AI readiness en commerciële follow-up — alles op één plek voor jouw FDE- en enterprise consultancy.

<%= consultingStats.assessments %>
Assessments
<%= consultingStats.clientsNeedingAssessment %> wachten op intake
<%= consultingStats.activeConsulting %>
Lopende Trajecten
Consulting & architectuur
<%= totalDiagrams %>
Designs
Architectuurdiagrammen
<%= consultingStats.openAdvice %>
Open Adviezen
Actie-items per cliënt
<% toolkit.forEach(function(section) { %>

<%= section.title %>

— <%= section.desc %>
<% section.tools.forEach(function(tool) { %>
<%= tool.label %> <%= tool.desc %>
<% }) %>
<% }) %>
Delivery Playbook

Standaard consultancy traject in 5 fasen

<% playbooks.forEach(function(pb) { %>
Fase <%= pb.phase %>

<%= pb.title %>

    <% pb.steps.forEach(function(s) { %>
  • <%= s %>
  • <% }) %>
<%= pb.duration %>
<% }) %>
Maturity Model

Consultancy dimensies per engagement

<% maturityLayers.forEach(function(layer) { %>
<%= layer.name %>
<% layer.items.forEach(function(item) { %><%= item %><% }) %>
<% }) %>

Slim Advies

Automatisch gegenereerd uit CRM-data
<% if(activeAdvice.length===0){ %>

Geen open actie-items — voeg cliënten toe om gepersonaliseerd advies te krijgen.

Eerste cliënt toevoegen
<% }else{ %>
<% activeAdvice.forEach(function(a) { %>
<%= a.priority %>

<%= a.advice_text %>

<%= a.client_name %> · <%= a.advice_type.replace(/_/g,' ') %>
Actie →
<% }) %>
<% } %>
Recente Assessments <% if(recentAssessments.length>0){ %>Alle<% } %>
<% if(recentAssessments.length===0){ %>
Nog geen assessments — start via Enterprise Framework
<% }else{ %>
<% recentAssessments.forEach(function(a) { %>
Assessment voor <%= a.client_name %>
<%= new Date(a.created_at).toLocaleString('nl-NL') %>
Rapport bekijken →
<% }) %>
<% } %>

LeadGen AI

AI-driven Lead Generation & Tech Scoping — analyseer bedrijfswebsites op technische signalen

URL Analyseren
API Configuratie

Plak een bedrijfs-URL en klik Analyseren. De AI scant de pagina op:

Tech stack detectiePain pointsData maturityOutreach hook

Market Intelligence

Nederlandse datacenters & data-gedreven bedrijven

<%= datacenterCount || 0 %>
Datacenters
Nederlandse markt
<%= marketCompaniesCount || 0 %>
Prospects
Data-gedreven bedrijven

Calendar

Planning, deadlines & afspraken

<%= overdueTasks %>
Open Tasks
<%= completedTasks %> completed

Data Quality

Data profiling, kwaliteitschecks & modellen

<%= assessmentsCount %>
Assessments
Data kwaliteit checks
<%= qualityFileCount || 0 %>
Data Bestanden
SQL & dbt modellen

Recente Activiteit

Recent Assessments
<% if(recentAssessments.length===0){ %>
Nog geen recente activiteit
<% }else{ %>
<% recentAssessments.forEach(function(a){ %>
Rapport voor <%= a.client_name %>
<%= new Date(a.created_at).toLocaleString('nl-NL') %>
<% }) %>
<% } %>