Open-source integration hub that connects any system with any other system.
Courier services, e-commerce platforms, ERP systems, WMS, automation — all connected through configurable flows and workflows with a visual dashboard.
Try it instantly with ./setup.sh — no manual configuration required.
| Feature | BaseLinker | Workato | Pinquark |
|---|---|---|---|
| Open-source | No | No | Yes (Apache 2.0) |
| Self-hosted | No | No (enterprise on-prem available) | Yes |
| Pricing | From ~€50/mo | From ~$10k/year | Free |
| Connectors | 100+ (e-commerce focused) | 1000+ (enterprise IT) | 35 (logistics + e-commerce) |
| Any-to-any flows | No (hub-and-spoke) | Yes (recipes) | Yes (Flow Engine) |
| Visual workflow builder | Limited automation rules | Yes | Yes (DAG-based, 18 node types) |
| Visual field mapper | No | Yes | Yes (drag & drop) |
| Custom connectors | No | Connector SDK (closed) | Yes (connector.yaml manifest) |
| Zero platform-code connectors | No | No | Yes |
| Embeddable UI | No | Embedded iPaaS (extra cost) | Yes (Angular library, free) |
| API + SDK | REST only | REST | REST + Python SDK |
| On-premise ERP agents | No | Yes | Yes (Docker-based) |
| OAuth2 lifecycle | Via platform | Yes | Yes (auto-refresh) |
| Webhook ingestion | No | Yes | Yes (signature verification) |
| Connector health monitoring | No | Basic | Yes (real-time, auto-disable) |
| Automated verification | No | No | Yes (3-tier: health → auth → functional) |
| Audit trail | No | Yes | Yes (entity + workflow versioning) |
| Per-connector rate limiting | No | Yes | Yes (token bucket) |
| Connector version isolation | No | No | Yes (multiple versions coexist) |
| Polish/CEE system coverage | Strong | Weak | Strong (InPost, Allegro, DPD PL, Poczta Polska, …) |
┌──────────────────────────────────────────────────────────────────┐
│ Pinquark Platform Core │
│ │
│ ┌──────────┐ ┌─────────────┐ ┌──────────┐ ┌──────────────┐ │
│ │API Gateway│ │ Flow Engine │ │ Workflow │ │ Dashboard │ │
│ │ (FastAPI) │ │ (any→any) │ │ Engine │ │ (Angular) │ │
│ └────┬─────┘ └──────┬──────┘ └────┬─────┘ └──────────────┘ │
│ │ │ │ │
│ ┌────┴───────────────┴──────────────┴───────────────────────┐ │
│ │ Connector Registry │ Credential Vault │ Mapping │ │
│ │ (connector.yaml) │ (AES-256-GCM) │ Resolver │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Verification Agent (3-tier: health → auth → functional) │ │
│ └──────────────────────────────────────────────────────────┘ │
└──────────────────────────┬───────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────────┐
│ │ │
┌────┴──────┐ ┌─────────┴─────────┐ ┌──────────┴──────────┐
│ Courier │ │ E-commerce │ │ ERP / WMS / Other │
│ (18) │ │ (8) │ │ │
│ InPost │ │ Allegro │ │ Pinquark WMS │
│ DHL │ │ Amazon │ │ InsERT Nexo │
│ DPD │ │ Apilo │ │ AI Agent │
│ FedEx │ │ BaseLinker │ │ SkanujFakture │
│ GLS │ │ Shopify │ │ Email Client │
│ UPS │ │ WooCommerce │ │ FTP/SFTP │
│ Raben │ │ Shoper │ │ Slack │
│ 11 more… │ │ IdoSell │ │ BulkGate SMS │
└───────────┘ └───────────────────┘ └─────────────────────┘
Every system is an equal peer. Connectors act as both source (emit events) and destination (receive actions). The Flow Engine connects any source event to any destination action.
Zero-impact connector architecture. Adding a new connector requires only creating a folder with a connector.yaml manifest — no platform code changes needed. The platform discovers connectors automatically at startup.
Browse all connectors with search, status, category, and country filters.
Version selector, interactive Swagger UI, capabilities, events, actions, and configuration — all loaded from the connector service.
Manage credentials for connected systems. Each card shows the connector, config fields, last update time, and real-time connection health status.
Create simple flows (source event to destination action) or advanced DAG-based workflows with multiple node types.
Drag-and-drop DAG editor with 18 node types — triggers, conditions, actions, AI nodes, loops, and more. Test and activate workflows from the builder.
Monitor all workflow and flow executions with status, duration, connector info, and error details. Filter by status, type, connector, and date range.
Drill into any execution to see the workflow graph with per-node status (success, failed, filtered, not executed), trigger data, and GDPR-compliant data masking.
A public demo instance is available at pq.dotts.pl — no installation required.
- Open https://pq.dotts.pl
- Enter a workspace name and click Create workspace
- Save the generated API key — it grants access to your isolated workspace
- Browse connectors, manage credentials, create flows and visual workflows
Each workspace is fully isolated (separate tenant with its own data). The API key is stored in sessionStorage and cleared when the browser tab is closed. Registration is rate-limited to 10 workspaces per IP per hour.
Already have a key? Switch to the "I Have a Key" tab and enter it to resume your session.
git clone https://github.com/pinquark/open-integration-platform.git
cd open-integration-platform
./setup.shsetup.sh generates a .env with secure random keys (encryption key, JWT secret, DB password, admin secret, internal secret) and starts all services via Docker Compose.
Open http://localhost:3000 for the dashboard.
npm install @pinquark/integrationsimport { PinquarkIntegrationsModule } from '@pinquark/integrations';
@NgModule({
imports: [
PinquarkIntegrationsModule.forRoot({
apiUrl: 'http://localhost:8080',
apiKey: environment.pinquarkApiKey,
})
]
})
export class AppModule {}<pinquark-connector-list [category]="'courier'"></pinquark-connector-list>
<pinquark-credential-form [connectorId]="'inpost'"></pinquark-credential-form>pip install pinquark-sdkfrom pinquark_sdk import PinquarkClient
client = PinquarkClient(api_key="pk_live_xxx")
# Create a shipment via any courier
shipment = await client.courier.create_shipment(
connector="inpost",
receiver={"name": "Jan Kowalski", "phone": "+48600100200",
"address": {"city": "Warszawa", "postal_code": "00-001"}},
parcels=[{"weight": 2.5, "width": 30, "height": 20, "length": 40}],
)
# Get the label
label_pdf = await client.courier.get_label(shipment.waybill_number)Define flows that trigger actions across systems automatically:
# When an Allegro order arrives, create an InPost shipment
flows:
- name: "Allegro -> InPost"
source:
connector: allegro
event: order.created
filter:
delivery_method: inpost_paczkomat
destination:
connector: inpost
action: shipment.create
mapping:
- from: order.buyer.name -> to: receiver.first_name
- from: order.buyer.address -> to: receiver.address
- from: order.point_id -> to: extras.target_pointFlows and workflows are configured via the dashboard UI or REST API. Default field mappings ship with each connector; tenants can override them per-instance.
Every connector is a self-contained microservice with its own API, versioning, and documentation. Browse them all in the dashboard or via the REST API.
| Category | # | Connectors |
|---|---|---|
| Courier | 18 | InPost (v1–v3) · DHL · DHL Express · DPD · FedEx · FedEx PL · FX Couriers · GLS · UPS · Poczta Polska · Orlen Paczka · Packeta · Paxy · Raben Group · DB Schenker · Geis · SUUS · SellAsist |
| E-commerce | 8 | Allegro · Amazon · Apilo · BaseLinker · Shopify · WooCommerce · Shoper · IdoSell |
| ERP | 1 | InsERT Nexo (Subiekt) — hybrid: on-premise agent + cloud connector |
| WMS | 1 | Pinquark WMS |
| AI | 1 | AI Agent (Gemini) — risk analysis, courier recommendations, data extraction |
| Other | 7 | Email Client (IMAP/SMTP) · SkanujFakture (invoice OCR) · KSeF (e-invoicing) · FTP/SFTP · Slack · BulkGate SMS · Amazon S3 |
Coming soon: PrestaShop, WAPRO, Comarch ERP, SAP, enova365, and more.
See docs/CONNECTORS.md for full configuration reference.
Adding a new connector requires zero changes to the platform core. Each connector is fully defined by its connector.yaml manifest:
name: my-connector
category: ecommerce
version: 1.0.0
display_name: "My Connector"
service_name: connector-my-connector
action_routes:
order.list:
method: GET
path: /orders
query_from_payload: [account_name, page, page_size]
credential_validation:
required_fields: [api_key]
test_request:
method: GET
url_template: "{api_url}/ping"
headers_template:
Authorization: "Bearer {api_key}"
success_status: 200The platform reads connector.yaml at startup for action routing, credential provisioning, credential validation, and verification agent test discovery. No platform files (gateway.py, action_dispatcher.py, discovery.py) need modification.
See docs/CONNECTOR-DEVELOPMENT.md for the full connector.yaml field reference.
For ERP systems that run behind firewalls (InsERT Nexo, WAPRO, SAP), the platform provides a Docker-based on-premise agent:
┌──────────────────────────┐
│ Client's Network │
│ │
│ ┌─────────┐ ┌────────┐ │ ┌─────────────────┐
│ │Local ERP│◀▶│On-Prem │─│────────▶│ Pinquark Cloud │
│ │(Nexo) │ │Agent │ │ HTTPS │ Integration Hub │
│ └─────────┘ └────────┘ │ └─────────────────┘
│ │ │
│ ┌────┴────┐ │
│ │ SQLite │ │
│ └─────────┘ │
└──────────────────────────┘
- Auto-update, offline resilience (local queue), heartbeat monitoring
- Windows installer wizard for easy client deployment
- Downloadable from the connector's detail page in the dashboard
A built-in 3-tier verification agent continuously monitors all connectors:
| Tier | Scope | Checks |
|---|---|---|
| 1 — Infrastructure | All connectors | /health, /readiness, /docs |
| 2 — Authentication | With credentials | Account provisioning, auth status, connection status |
| 3 — Functional | Per-connector | All endpoints, CRUD cycles, error paths, response times |
Runs on schedule (default: every 7 days), on-demand via API, or from the dashboard.
├── platform/ # Core platform (API Gateway, Flow & Workflow Engine)
│ ├── api/ # FastAPI application + credential validator
│ ├── core/ # Business logic (action dispatcher, connector registry,
│ │ # flow engine, workflow engine, mapping resolver)
│ ├── db/ # PostgreSQL models & migrations
│ ├── verification-agent/ # 3-tier connector verification service
│ └── dashboard/ # Angular workspace
│ ├── projects/
│ │ ├── integrations-lib/ # @pinquark/integrations (npm library)
│ │ └── dashboard-app/ # Standalone dashboard
│ └── angular.json
│
├── integrators/ # All connectors by category
│ ├── courier/ # InPost, DHL, DPD, FedEx, GLS, UPS, Raben, ...
│ ├── ecommerce/ # Allegro, Amazon, Apilo, BaseLinker, Shopify, ...
│ ├── erp/ # InsERT Nexo (on-premise + cloud)
│ ├── wms/ # Pinquark WMS
│ ├── ai/ # AI Agent (Gemini)
│ └── other/ # Email, SkanujFakture, FTP/SFTP, Slack, BulkGate
│
├── shared/ # Shared Python library (pinquark-common)
│ └── python/
│ └── pinquark_common/ # Interfaces, schemas, utilities
│
├── sdk/ # Client SDKs
│ └── python/ # pinquark-sdk (PyPI)
│
├── onpremise/ # On-premise agent for local ERP connectivity
│ └── nexo-agent/ # InsERT Nexo agent (Python.NET + FastAPI)
│
├── docs/ # Per-connector documentation & architecture
│ ├── ARCHITECTURE.md # System architecture & scalability
│ ├── CONNECTORS.md # Connector configuration reference
│ ├── courier/
│ ├── ecommerce/
│ ├── erp/
│ └── other/
│
├── k8s/ # Kubernetes deployment configs
├── ci/ # CI/CD pipelines
├── monitoring/ # Prometheus, Grafana configs
├── AGENTS.md # Agent guidelines, coding standards, full reference
└── README.md
- Backend: Python 3.12+, FastAPI, SQLAlchemy, Alembic, Pydantic v2
- Database: PostgreSQL 16 (RLS for multi-tenant), Redis 7 (cache, rate limiting)
- Frontend: Angular 18+, Angular Material, TypeScript strict
- Messaging: Kafka / Redis Streams (event bus)
- Connectors: FastAPI microservices, httpx (async HTTP), zeep (SOAP)
- On-premise: Python.NET (pythonnet) for .NET SDK bridges, SQLite for local queuing
- Infrastructure: Docker, Kubernetes, Helm, Prometheus, Grafana
- Security: AES-256-GCM credential encryption, TLS 1.2+, non-root containers
| Document | Path | Description |
|---|---|---|
| Architecture | docs/ARCHITECTURE.md | System architecture, scalability, deployment |
| Connectors | docs/CONNECTORS.md | Configuration reference for all connectors |
| Connector Development | docs/CONNECTOR-DEVELOPMENT.md | connector.yaml spec, SDK, verification, testing guide |
| Standards | docs/STANDARDS.md | Docker, CI/CD, security, monitoring, documentation |
| Agent Guidelines | AGENTS.md | Coding standards, CI/CD, security, interfaces |
See CONTRIBUTING.md for development setup, coding standards, and how to create new connectors.
Apache License 2.0 — see LICENSE for details.






