---
title: Connector
description: Connector protocol schemas
---

{/* ⚠️  AUTO-GENERATED — DO NOT EDIT. Run build-docs.ts to regenerate. Hand-written docs go in content/docs/guides/. */}

<Callout type="info">
**Source:** `packages/spec/src/automation/connector.zod.ts`
</Callout>

## TypeScript Usage

```typescript
import { Connector, ConnectorTrigger } from '@objectstack/spec/automation';
import type { Connector, ConnectorTrigger } from '@objectstack/spec/automation';

// Validate data
const result = Connector.parse(data);
```

---

## Connector

### Properties

| Property | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| **id** | `string` | ✅ | Connector ID (snake_case) |
| **name** | `string` | ✅ | Connector name |
| **description** | `string` | optional | Connector description |
| **version** | `string` | optional | Connector version |
| **icon** | `string` | optional | Connector icon |
| **category** | `Enum<'crm' \| 'payment' \| 'communication' \| 'storage' \| 'analytics' \| 'database' \| 'marketing' \| 'accounting' \| 'hr' \| 'productivity' \| 'ecommerce' \| 'support' \| 'devtools' \| 'social' \| 'other'>` | ✅ | Connector category |
| **baseUrl** | `string` | optional | API base URL |
| **authentication** | `Object` | ✅ | Authentication config |
| **operations** | `Object[]` | optional | Connector operations |
| **triggers** | `Object[]` | optional | Connector triggers |
| **rateLimit** | `Object` | optional | Rate limiting |
| **author** | `string` | optional | Connector author |
| **documentation** | `string` | optional | Documentation URL |
| **homepage** | `string` | optional | Homepage URL |
| **license** | `string` | optional | License (SPDX identifier) |
| **tags** | `string[]` | optional | Connector tags |
| **verified** | `boolean` | ✅ | Verified connector |
| **metadata** | `Record<string, any>` | optional | Custom metadata |


---

## ConnectorTrigger

### Properties

| Property | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| **id** | `string` | ✅ | Trigger ID (snake_case) |
| **name** | `string` | ✅ | Trigger name |
| **description** | `string` | optional | Trigger description |
| **type** | `Enum<'webhook' \| 'polling' \| 'stream'>` | ✅ | Trigger mechanism |
| **config** | `Record<string, any>` | optional | Trigger configuration |
| **outputSchema** | `Record<string, any>` | optional | Event payload schema |
| **pollingIntervalMs** | `integer` | optional | Polling interval in ms |


---

