Headlessly

Automate

Workflows, AI agents, and integrations that run the business autonomously.

Stop doing things manually. headless.ly's event system and verb conjugation make automation the natural outcome -- not a separate "automation platform" to configure.

import { Deal } from '@headlessly/crm'
import { Metric } from '@headlessly/analytics'
import { Agent } from '@headlessly/platform'
import { Campaign } from '@headlessly/marketing'

// When a deal closes, create a subscription and update the contact
Deal.closed((deal, $) => {
  $.Subscription.create({ plan: 'pro', contact: deal.contact })
  $.Contact.update(deal.contact, { stage: 'Customer' })
})

// When churn spikes, launch a win-back campaign
Metric.watch('churn_rate', { threshold: 3.0, direction: 'above' }, () => {
  Campaign.create({ name: 'Win-back', type: 'Email', segment: 'churning' })
})

// Deploy an autonomous support agent
await Agent.create({
  name: 'Support Bot',
  mode: 'Autonomous',
  model: 'claude-sonnet-4-5-20250929',
  triggers: ['Ticket.Created'],
  capabilities: ['Ticket.assign', 'Message.send', 'Ticket.solve', 'Ticket.escalate'],
})

Key Entities

EntityPurposeKey Verbs
WorkflowAutomation rules -- event to actionactivate, pause, trigger
IntegrationExternal connections -- Stripe, GitHub, Slackconnect, disconnect, sync
AgentAI agents that operate autonomouslydeploy, pause, configure

Workflows

Workflows are event-triggered automations defined as code-as-data:

import { Workflow } from '@headlessly/platform'
import { Ticket } from '@headlessly/support'
import { Event } from '@headlessly/analytics'

await Workflow.create({
  name: 'Deal Won -> Subscription',
  trigger: 'Deal.Closed',
  action: async (deal, $) => {
    await $.Subscription.create({ plan: 'pro', contact: deal.contact })
    await $.Contact.update(deal.contact, { stage: 'Customer' })
  },
})

await Workflow.create({
  name: 'SLA Breach -> Escalate',
  trigger: 'Ticket.SLABreached',
  action: async (ticket) => {
    await Ticket.escalate({ id: ticket.$id })
    await Event.create({
      type: 'Task',
      subject: `Urgent: SLA breach on ${ticket.subject}`,
      source: 'crm',
    })
  },
})

Agents

AI agents that operate the business autonomously:

import { Agent } from '@headlessly/platform'

// Support agent -- handles tickets, writes messages, escalates when stuck
await Agent.create({
  name: 'Support Bot',
  mode: 'Autonomous',
  model: 'claude-sonnet-4-5-20250929',
  triggers: ['Ticket.Created'],
  capabilities: ['Ticket.assign', 'Message.send', 'Ticket.solve', 'Ticket.escalate'],
})

// Content agent -- writes blog posts, social content
await Agent.create({
  name: 'Content Writer',
  mode: 'Autonomous',
  triggers: ['Campaign.Launched'],
  capabilities: ['Content.create', 'Content.publish'],
})

Integrations

All integrations live in the .do layer:

import { Integration } from '@headlessly/platform'

// Connect external systems
await Integration.connect('stripe', { apiKey: process.env.STRIPE_KEY })
await Integration.connect('github', { token: process.env.GITHUB_TOKEN })
await Integration.connect('slack', { webhook: process.env.SLACK_WEBHOOK })

// Sync status
const syncs = await Integration.find({ status: 'Active' })

On this page