# Automation Catalog > **Architecture only.** Automation is **NOT** a PlatformProduct. > Contract version: `automation-catalog.v1` > ADR: [ADR-023](../architecture/adr/ADR-023.md) (v1.1) --- ## 1. Purpose The **Automation Catalog** defines reusable automation **types** and **packs** that products and bundles may reference. Automation remains a cross-cutting catalog — independent of any single commercial product identity. --- ## 2. AutomationType (open registry) | Field | Type | Meaning | | --- | --- | --- | | `automation_type_code` | string | Open key | | `display_name` | string | | | `channel_family` | string? | e.g. `messaging`, `schedule`, `event`, `ai` | | `status` | enum | `active` \| `reserved` \| `deprecated` | | `owning_runtime_hint` | string? | Typical executor service | | `ext` | object | | ### Illustrative automation type matrix | automation_type_code | Display | Family | Status | | --- | --- | --- | --- | | `workflow` | Workflow | event | reserved | | `webhook` | Webhook | event | reserved | | `event_trigger` | Event Trigger | event | reserved | | `cron` | Cron | schedule | reserved | | `scheduler` | Scheduler | schedule | reserved | | `sms` | SMS | messaging | active | | `email` | Email | messaging | active | | `push` | Push | messaging | reserved | | `rubika` | Rubika | messaging | reserved | | `whatsapp` | WhatsApp | messaging | reserved | | `telegram` | Telegram | messaging | reserved | | `ai_agent` | AI Agent | ai | reserved | | `api_trigger` | API Trigger | event | reserved | | `internal_event` | Internal Event | event | active | | `external_event` | External Event | event | reserved | Unlimited future types MAY be added as registry entries only. --- ## 3. AutomationPack Logical packaging of one or more automation types for commercial reference: | Field | Type | Meaning | | --- | --- | --- | | `automation_pack_code` | string | | | `display_name` | string | | | `automation_type_codes[]` | string[] | | | `required_capability_codes[]` | string[] | e.g. `sms`, `email` | | `required_product_codes[]` | string[] | Optional product deps | | `status` | enum | `draft` \| `active` \| `retired` | | `documentation_ref` | string? | | | `ext` | object | | Business Bundles and PlatformProducts reference packs by `automation_pack_code` only — never embed workflow graphs here. --- ## 4. Separation rules 1. Do **not** register Automation as `product.automation` in the Product Registry. 2. Communication / future Automation service engines own runtime execution. 3. Commercial foundation owns **catalog contracts** only. 4. Recommendation / activation may *reference* packs; they do not execute them.