# Event Types (https://yapl.app/en/docs/user-guides/webhooks/event-types)

# Webhook Event Types

YAPL can send webhook notifications for events across projects, teams, plans, and workspaces. This page lists every available event type with a description of when it fires.

## Event Type Format

Event types follow the pattern `domain.action.version`:

```
project.created.v1
│       │       │
│       │       └── Version (for future compatibility)
│       └────────── What happened
└────────────────── Which area
```

## Project Events

Triggered when projects are created, updated, or change status.

| Event Type | Description |
|------------|-------------|
| `project.created.v1` | A new project was created |
| `project.updated.v1` | A project's details were changed (name, description, dates, budget) |
| `project.deleted.v1` | A project was permanently deleted |
| `project.archived.v1` | A project was moved to the archive |
| `project.restored.v1` | An archived project was restored to active status |
| `project.statusChanged.v1` | A project's status changed (e.g., Planning to Active, Active to On Hold) |

## Team Events

Triggered when teams or team membership changes.

| Event Type | Description |
|------------|-------------|
| `team.created.v1` | A new team was created |
| `team.updated.v1` | A team's details were changed (name, description) |
| `team.deleted.v1` | A team was deleted |
| `team.member-added.v1` | A member was added to a team |
| `team.member-removed.v1` | A member was removed from a team |
| `team.member-role-changed.v1` | A team member's role was changed (e.g., Member to Lead) |

## Plan Events

Triggered when plans (scheduling documents within projects) are modified.

| Event Type | Description |
|------------|-------------|
| `plan.created.v1` | A new plan was created |
| `plan.published.v1` | A plan was published (made visible to the team) |
| `plan.archived.v1` | A plan was archived |
| `plan.restored.v1` | An archived plan was restored |
| `plan.deleted.v1` | A plan was permanently deleted |
| `plan.task.added.v1` | A new task was added to a plan |
| `plan.task.updated.v1` | A task within a plan was updated |
| `plan.task.deleted.v1` | A task was removed from a plan |

## Workspace Events

Triggered when workspace-level settings change.

| Event Type | Description |
|------------|-------------|
| `workspace.updated.v1` | Workspace settings were changed (name, description, configuration) |

## Event Payload Examples

### Project Created

```json
{
  "id": "evt_abc123",
  "type": "project.created.v1",
  "timestamp": "2026-03-25T10:30:00.000Z",
  "workspaceId": "ws_xyz789",
  "data": {
    "projectId": "proj_456",
    "projectName": "Office Renovation",
    "status": "planning",
    "teamId": "team_321",
    "teamName": "Operations",
    "actorName": "John Smith"
  }
}
```

### Team Member Added

```json
{
  "id": "evt_def456",
  "type": "team.member-added.v1",
  "timestamp": "2026-03-25T11:00:00.000Z",
  "workspaceId": "ws_xyz789",
  "data": {
    "teamId": "team_321",
    "teamName": "Engineering",
    "memberId": "user_890",
    "memberName": "Jane Doe",
    "role": "member",
    "actorName": "John Smith"
  }
}
```

### Task Updated

```json
{
  "id": "evt_ghi789",
  "type": "plan.task.updated.v1",
  "timestamp": "2026-03-25T14:15:00.000Z",
  "workspaceId": "ws_xyz789",
  "data": {
    "planId": "plan_555",
    "planName": "Q2 Schedule",
    "taskId": "task_777",
    "taskName": "Foundation Work",
    "actorName": "Jane Doe"
  }
}
```

## Filtering Events

When creating or editing a webhook endpoint, you can select which event types it receives:

- **All events** — Leave event types empty to receive everything (default)
- **Specific events** — Select only the events relevant to your integration

For example, a Slack channel for project updates might only subscribe to `project.created.v1`, `project.statusChanged.v1`, and `project.archived.v1`.

## Data Sensitivity

YAPL automatically strips sensitive fields from webhook payloads before delivery. The following fields are never included:

- Passwords and password hashes
- Access tokens and refresh tokens
- API keys and secrets
- Session identifiers
- IP addresses and user agents

## Related Topics

- [Creating Webhooks](/docs/user-guides/webhooks/creating-webhooks) — Set up endpoints
- [Delivery Logs](/docs/user-guides/webhooks/delivery-logs) — Monitor delivery status
- [Verifying Signatures](/docs/user-guides/webhooks/verifying-signatures) — Secure your endpoint