README.md

May 29, 2026 Β· View on GitHub

Important

🚚 This repository has moved to Codeberg

Active development now happens at https://codeberg.org/Conduction/pipelinq. This GitHub mirror is read-only β€” issues, pull requests, and new commits should go to Codeberg. Update your remote with: git remote set-url origin https://codeberg.org/Conduction/pipelinq

Pipelinq logo

Pipelinq

Lightweight CRM for Nextcloud β€” client management, lead pipelines, and request intake

Latest release License Code quality Documentation


Pipelinq brings CRM capabilities natively into Nextcloud. Track clients and organizations, manage leads through visual kanban pipelines, capture service requests before they become formal cases, and log every interaction β€” without leaving your Nextcloud workspace.

It pairs naturally with Procest to form a complete intake-to-resolution workflow: Pipelinq handles the customer-facing side, Procest handles the internal case processing.

Requires: OpenRegister β€” all data is stored as OpenRegister objects (no own database tables).

Screenshots

Dashboard with KPI cards and pipeline overview Lead pipeline kanban board Client list and detail view
Dashboard Lead Pipeline Clients

Features

Client Management

  • Persons & Organizations β€” Full CRUD with contact details, notes, and complete interaction history
  • Contact Persons β€” Link individuals to organizations with roles (sales manager, project lead, etc.)
  • Duplicate Detection β€” Automatic warnings when creating clients with matching names or email addresses
  • Nextcloud Contacts Sync β€” Two-way sync with the native Contacts app via CardDAV

Lead Pipeline

  • Visual Kanban Board β€” Drag-and-drop leads through configurable pipeline stages
  • Pipeline Configuration β€” Define custom stages, assign monetary values, set close probabilities
  • Lead Detail β€” Full history, notes, associated client, assigned owner, and stage transitions

Request Intake

  • Verzoeken β€” Capture incoming service requests before they're handed to formal case management
  • Request-to-Case Bridge β€” Hand off requests directly to Procest when ready
  • Status Tracking β€” Follow requests through intake statuses with activity timeline

Work Management

  • My Work Queue β€” Personal dashboard showing all assigned leads, requests, and follow-ups
  • Activity Feed β€” Real-time updates on assignments, stage changes, new notes, and interactions
  • Contact Moments β€” Log calls, emails, visits, and other client interactions with timestamps

Integrations

  • Unified Search β€” Deep links for clients, leads, and requests in Nextcloud's global search
  • Activity Stream β€” Nextcloud activity integration for assignments and status changes
  • Notifications β€” Native Nextcloud notifications for new assignments and important updates

Architecture

graph TD
    A[Vue 2 Frontend] -->|REST API| B[OpenRegister API]
    B --> C[(PostgreSQL JSON store)]
    A <-->|CardDAV| D[Nextcloud Contacts]
    A --> E[Nextcloud Activity]
    A --> F[Nextcloud Search]
    B --> G[Procest β€” case handoff]

Data Model

ObjectDescriptionSchema.orgVNG Mapping
ClientPerson or organizationPerson / OrganizationPartij
Contact PersonIndividual linked to a clientPerson + worksForContactpersoon
LeadSales opportunityOfferβ€”
RequestService intake / inquiryDemandVerzoek
Contact MomentLogged interactionCommunicateActionContactmoment
PipelineWorkflow stage definitionItemListβ€”

Data standard: Schema.org + vCard (RFC 6350) with VNG Klantinteracties API compatibility.

Directory Structure

pipelinq/
β”œβ”€β”€ appinfo/           # Nextcloud app manifest, routes, navigation
β”œβ”€β”€ lib/               # PHP backend β€” controllers, services, activity, notifications
β”œβ”€β”€ src/               # Vue 2 frontend β€” components, Pinia stores, views
β”‚   β”œβ”€β”€ components/    # Reusable UI components
β”‚   β”œβ”€β”€ store/         # Pinia stores per entity (clients, leads, requests…)
β”‚   └── views/         # Route-level views
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ FEATURES.md    # Full feature specification
β”‚   β”œβ”€β”€ ARCHITECTURE.md
β”‚   └── features/      # Per-feature documentation
β”œβ”€β”€ img/               # App icons and screenshots
β”œβ”€β”€ l10n/              # Translations (en, nl)
└── docusaurus/        # Product documentation site (pipelinq.app)

Requirements

DependencyVersion
Nextcloud28 – 33
PHP8.1+
OpenRegisterlatest

Installation

From the Nextcloud App Store

  1. Go to Apps in your Nextcloud instance
  2. Search for Pipelinq
  3. Click Download and enable

OpenRegister must be installed first. Install OpenRegister β†’

From Source

cd /var/www/html/custom_apps
git clone https://github.com/ConductionNL/pipelinq.git
cd pipelinq
npm install
npm run build
php occ app:enable pipelinq

Development

Start the environment

docker compose -f openregister/docker-compose.yml up -d

Frontend development

cd pipelinq
npm install
npm run dev        # Watch mode
npm run build      # Production build

Code quality

# PHP
composer phpcs          # Check coding standards
composer cs:fix         # Auto-fix issues
composer phpmd          # Mess detection
composer phpmetrics     # HTML metrics report

# Frontend
npm run lint            # ESLint
npm run stylelint       # CSS linting

Tech Stack

LayerTechnology
FrontendVue 2.7, Pinia, @nextcloud/vue
BuildWebpack 5, @nextcloud/webpack-vue-config
BackendPHP 8.1+, Nextcloud App Framework
DataOpenRegister (PostgreSQL JSON objects)
UX@conduction/nextcloud-vue, vue-draggable
QualityPHPCS, PHPMD, phpmetrics, ESLint, Stylelint

Documentation

Full documentation is available at pipelinq.app

PageDescription
FeaturesComplete feature specification
ArchitectureTechnical architecture and design decisions
DevelopmentDeveloper setup and contribution guide

Standards & Compliance

  • Data standard: Schema.org + vCard (RFC 6350)
  • Dutch interoperability: VNG Klantinteracties, VNG Verzoeken API
  • Accessibility: WCAG AA (Dutch government requirement)
  • Authorization: RBAC via OpenRegister
  • Audit trail: Full change history on all objects
  • Localization: English and Dutch
  • Procest β€” Case management; receives requests handed off from Pipelinq
  • OpenRegister β€” Object storage layer (required dependency)
  • OpenCatalogi β€” Application catalogue

License

AGPL-3.0-or-later

Authors

Built by Conduction β€” open-source software for Dutch government and public sector organizations.