Reference
Technical reference
On this page
Reference documentation for Conclude’s app model — the YAML definition that shapes a channel’s activities, automations, integrations, and AI agents.
Contents
| Doc | Covers |
|---|---|
| App YAML | Top-level YAML structure, every field on the App type |
| Attributes | Attribute types, options, visibility, ACLs |
| Statuses and states | Activity states, built-in/custom statuses, Zendesk + Jira mapping |
| Triggers | onCreate / onComment / onEdit / onConclude, conditions, actions |
| Scripting (Starlark) | Starlark API, scheduled re-entry, conclude.editComment / conclude.schedule |
| Agents in YAML | AI agent configuration and trigger wiring |
| Connectors | Email, web, Jira, Zendesk, lookup endpoints |
| Macros and roles | Role expressions, install-time and runtime macros |
What an app is
An app is a YAML document that turns a channel into a structured workspace for a specific kind of work — support tickets, incidents, approvals, decisions. Installing an app on a channel binds the channel to that definition; everything the channel does after that — activity creation, attribute prompts, automations, AI agents, integrations — is shaped by the YAML.
The smallest valid app declares a name, a label, and at least one
attribute (which must include title):
name: simple
label: Simple
attributes:
- name: title
type: string
label: Subject
mandatory: true
Conceptual model
Channel ── installs ──> App (YAML)
│
├── Settings — operational config
├── Roles — who can do what
├── Texts — UI text overrides
│
├── Attributes[] — fields on each activity
│ └── Options, Triggers
│
├── Triggers[] — onCreate/onComment/onEdit/onConclude
│ └── Actions: setAttribute, message, email,
│ conclude, agent, script
│
├── Scripts[] — named Starlark
├── agent actions — organization agents named in triggers
│
├── EmailConnector — inbound email
├── WebConnector — inbound web form
├── Jira / Zendesk — external sync
└── Lookup — HTTP enrichment endpoint
An activity is one instance of work tracked under the app — one ticket, one incident, one approval request. Each activity has the attributes the app declares. Triggers fire as the activity moves through its lifecycle.
Lifecycle
[user posts in channel]
│
▼
onCreate ──► attributes filled / triggers fire / agents engaged
│
▼
activity open
│
├── onComment (user replies)
├── onEdit (attribute changed)
└── onConclude (activity closed)
Scripts and agents only fire on user-originated events (loop protection via the call stack — see Scripting (Starlark)).
Where to start reading
- New to Conclude apps: read this page, then look at the
bundled apps —
support.yaml,incident.yaml,approval.yamlare good starting points. - Writing your first app: App YAML and Attributes.
- Adding automation: Triggers, then Scripting (Starlark) or Agents in YAML depending on whether you want deterministic logic or AI behavior.
- Connecting to external systems: Connectors.
Bundled apps (canonical examples)
| File | Demonstrates |
|---|---|
support.yaml | Minimal support ticket |
incident.yaml | Status states, severity, postmortem |
approval.yaml | Superusers role, option-driven close |
contact-form.yaml | Web connector, attribute mapping |
bug.yaml | Status + severity, conclusion templates |
jira.yaml | Jira integration, display macros |