Zum Inhalt springen

ERP Integration

Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.

Eryxon Flow supports two-way data synchronization with external ERP systems like SAP, NetSuite, Odoo, and others.

flowchart LR
  ERP["Your ERP"] -->|REST sync, bulk-sync| API["Edge Functions<br/>(API key)"]
  API --> PG[("Postgres<br/>external_id · sync_hash · RLS")]
  PG -->|triggers| WH["Signed webhooks"]
  WH --> ERP

Best for: Webhook-driven updates, event-based sync, real-time integration.

MethodEndpointUse Case
PUT/api-{entity}/syncUpsert single record
POST/api-{entity}/bulk-syncBatch upsert (up to 1000)
DELETE/api-{entity}?id={uuid}Hard delete

Sync endpoints exist for jobs, parts, operations, batches, cells, resources, materials, time entries, webhooks, and assignments. See the REST API reference for the full catalog.

Best for: Initial data migration, periodic bulk updates, manual imports.

Navigate to Admin → Data Import in the web UI.

ERP ConceptEryxon EntitySync Endpoint
Sales OrderJob/api-jobs/sync
Work CenterCell/api-cells/sync
Equipment / ToolingResource/api-resources/sync

Parts and operations are synced via the unified /api-erp-sync endpoint or created nested within jobs.

Every synced record should include:

{
"external_id": "SO-12345", // Your ERP's unique identifier
"external_source": "SAP", // Source system name
...other fields
}

The combination of (tenant_id, external_source, external_id) forms a unique constraint for upsert operations.

Eryxon automatically generates a SHA-256 hash of the payload for change detection. On subsequent syncs, unchanged records can be skipped.

Timestamp of the last successful sync, useful for incremental updates.

The sync infrastructure adds these columns to core tables:

-- Added to jobs, parts, cells, resources
external_id TEXT, -- ERP identifier
external_source TEXT, -- Source system name
synced_at TIMESTAMPTZ, -- Last sync timestamp
-- Soft delete support (jobs, cells)
deleted_at TIMESTAMPTZ, -- NULL = active
deleted_by UUID -- User who deleted
  1. Always include external_id - Required for upsert operations
  2. Sync dependencies first - Sync cells before operations that reference them
  3. Use bulk-sync for batches - More efficient than individual requests
  4. Implement webhooks - Receive real-time updates back to your ERP
  5. Handle errors gracefully - Bulk responses include per-record errors