Core Concepts

Kanvas is built around six core primitives. Understanding these is the foundation for building on the platform.

Entities

Entities represent real-world objects inside the system. They are your system of record.

FieldTypeDescription
UserEcosystemPeople who access the system — team members, agents, admins
CompanyEcosystemOrganizations / tenants — all data is scoped to a company
PeopleCRMContacts, customers, leads — external individuals
OrganizationCRMExternal companies your business interacts with
LeadCRMSales opportunities tracked through pipeline stages
ProductInventoryItems in your catalog with variants, attributes, and stock
VariantInventorySpecific SKU of a product (size, color, config)
WarehouseInventoryPhysical or virtual locations that hold stock
OrderCommercePurchase transactions with items, payments, fulfillment
MessageSocialContent entries — posts, notifications, communications
ChannelSocialGroupings for messages and communication threads

Relationships

Entities are connected through relationships, allowing agents to navigate the operational graph of the business:

Company → Users (team members)
Company → People (customers / contacts)
People → Organizations (works at)
People → Leads (sales opportunities)
Lead → Pipeline → Stages (sales process)
Product → Variants → Warehouses (inventory)
Product → Categories (catalog structure)
Order → People (customer)
Order → OrderItems → Variants (what was purchased)
Message → Channel (communication context)

Events

Events represent things that happen in the system. Agents subscribe to events to trigger workflows or make decisions.

FieldTypeDescription
lead.createdCRMA new lead was received
lead.updatedCRMA lead changed stage, status, or data
order.createdCommerceA new order was placed
inventory.updatedInventoryStock levels changed
message.createdSocialA new message was posted
people.createdCRMA new contact was added
webhook.receivedWorkflowExternal data arrived via receiver

Events are consumed via GraphQL subscriptions (WebSocket) or webhook receivers that push data to your systems.

Actions

Actions are operations that change system state. They are the interface between agents and operations. In GraphQL terms, actions are mutations:

# Agent decides to create a lead
createLead(input: { title: "Enterprise deal", people_id: 1, pipeline_stage_id: 1 })

# Agent decides to update inventory
updateVariant(id: 1, input: { warehouse: [{ warehouse_id: 1, quantity: 50 }] })

# Agent decides to process an order
createOrderFromCart(input: { cart_id: 1, shipping_address: { ... } })

# Agent decides to send a message
createMessage(input: { message: "Status update", message_types_id: 1 })

Workflows

Workflows define automated operational processes. They can be triggered by events or initiated by agents.

Lead Received (event)
  ↓
Create Contact (action)
  ↓
Assign to Sales Agent (action)
  ↓
Send Follow-up Email (integration)
  ↓
Schedule Appointment (action)
  ↓
Update Pipeline Stage (action)

Kanvas workflows are configured through webhook receivers and rules that define trigger conditions and resulting actions.

Memory

Kanvas stores operational context that agents can query to make decisions:

  • Entity data — current state of all business objects
  • Custom fields — domain-specific data on any entity
  • Files & documents — attached to any entity
  • Activity history — who did what, when
  • Workflow state — where processes stand
  • Relationship graph — how entities connect

This context is what allows agents to make informed decisions without rebuilding business knowledge from scratch.