Object-neutral CRM infrastructure for KickSide. Business modules declare typed object and relation tables; CRM supplies transactional schema editing, native search, imports, events, Blocks, agent tools, APIs, and maintained web components.

KickSide-Community-1.0 8.8k downloads
Updated 11 days ago Repository
kicksidecrmrecordsgtmevent-sourced

Run

wippy run kickside/crm

KickSide CRM

Workspace CRM for Kickside applications.

This optional package adds a flexible CRM substrate: CRM records, object schemas, attributes, pipelines, saved views, activity timelines, associations, merge/reconciliation data, a table/board/timeline UI, automation ports, and agent-facing CRM tools.

What It Provides

  • Registry entries under kickside.crm.
  • A CRM component kind backed by one aggregate thread per workspace CRM.
  • Typed crm.* events and a leased projection into SQL read-model tables.
  • Read/write facades used by the UI, automation sink, and agent tools.
  • Authenticated CRM API endpoints.
  • kickside.data:writable sink support for provider and automation imports.
  • Event source ports for automations reacting to CRM changes.
  • Canonical Blocks for identity resolution and CRM merge review.
  • Portable kickside.flow/v1 CRM review starters with no activation state.
  • Bundled web components:
    • kickside-crm
    • kickside-crm-record-picker
    • kickside-crm-settings

Install Parameters

Required host bindings:

  • kickside.crm:api_router - authenticated HTTP router for CRM endpoints. Defaults to app:api.
  • kickside.crm:target_db - SQL database for CRM projection tables. Defaults to app:db.
  • kickside.crm:ui_server - HTTP server for the bundled UI. Defaults to app:gateway.
  • kickside.crm.security:user_security_scope - application security group appended to the CRM endpoint access policy.

Configuration:

  • kickside.crm:thread_event_retention_days - retention window for CRM aggregate thread events. Defaults to 365.

Record-level access remains the component ACL; this endpoint policy only gates who can reach the CRM API surface.

UI

The package embeds kickside.crm:ui_fs. After installation, the main bundle is available at /kickside-crm/index.js.

The primary CRM surface supports object navigation, table views, board views, timelines, record drawers, inline edits, and basic schema/settings management. The record picker can be embedded by other modules that need CRM record selection.

Automation And Agent Integration

CRM emits typed events for object, record, relation, membership, activity, attribute, view, and pipeline changes. Automations can subscribe to these ports, and provider modules can write into CRM through the crm_records writable sink with reconciliation metadata such as external source, external id, and external version.

Agent traits expose read and manage operations over the same reader/writer facades used by the UI and sink, so automations and agents do not bypass the CRM write path.

Flow Composition

CRM is independent of visual Workflows and Automation. Its generic event ports are optional discovery surfaces. Reusable execution is declared once as exact kickside.block/v1 entries under kickside.crm; headless Blocks can discover and lower them. CRM also ships inert kickside.flow/v1 artifacts under kickside.crm. A separately installed Flow authoring package may import those artifacts, and Automation may bind CRM event ports after publication. CRM owns no Behavior API or parallel runtime catalog.

Notes

This is an installable KickSide module. Package-owned entries, policies, tables, and UI tags use the kickside.crm, kickside_crm, and kickside-crm prefixes. Platform contracts such as kickside.data:writable remain Kickside contracts by design.