Action Engine

The Action Engine provides configurable business processes — actions with form fields, pipelines with stages, task lists, and engagement tracking. Think of it as a workflow builder for structured operations that agents can execute step by step.

How It Works

ComponentPurpose
ActionReusable process definition with configurable form fields
CompanyActionCompany-specific customization of an action
EngagementAn execution of an action against a lead or person
TaskListChecklist of items to complete
PipelineStages for tracking action progress

Company Actions

FieldTypeDescription
idID!Unique identifier
nameString!Action name
descriptionStringWhat this action does
is_activeBooleanWhether it's enabled
is_publishedBooleanWhether it's visible
weightIntSort order
actionActionParent action definition with form_fields and form_config
pipelineActionPipelineAssociated pipeline
files[Filesystem!]Attached files
custom_fields[CustomField!]Custom data
# List company actions
query {
  companyActions(first: 20) {
    data {
      id name description is_active weight
      action { name slug form_fields form_config }
      pipeline { name stages { name weight } }
    }
  }
}

Engagements

An engagement tracks the execution of an action against a lead.

# Start an engagement
mutation {
  startLeadEngagement(input: {
    lead_id: 1
    company_action_id: 1
    message: "Starting onboarding process"
  }) {
    id uuid slug
    lead { title }
    company_action { name }
    user { displayname }
  }
}

# Continue an engagement
mutation {
  continueLeadEngagement(input: {
    engagement_id: 1
    message: "Step 2 completed"
  }) {
    id message
  }
}

Task Lists

# List tasks
query {
  taskLists(first: 20) {
    data {
      id name
      tasks { id name status due_date completed_date weight }
    }
  }
}

# Update task status
mutation {
  changeTaskEngagementItemStatus(id: 1, status: "completed") {
    id status completed_date
  }
}

Action Pipelines

query {
  actionPipelines(first: 20) {
    data {
      id name slug is_default
      stages { id name weight has_rotting_days rotting_days }
    }
  }
}