---
title: "Move trigger to another agent"
method: POST
path: "/api/agents/{agentId}/trigger/{triggerId}/move"
tags: ["Agent Triggers"]
---

# Move trigger to another agent

`POST /api/agents/{agentId}/trigger/{triggerId}/move`

## Request

- Base URL: `https://app.cotool.ai`
- URL: `https://app.cotool.ai/api/agents/{agentId}/trigger/{triggerId}/move`
- Auth: HTTP bearer

Re-assign a trigger to a different agent. The webhook URL and secret are unchanged (they embed only the trigger id), so externally configured webhooks keep working.

## Path parameters

- `agentId` string, uuid, required: Unique identifier of the agent
- `triggerId` string, uuid, required: Unique identifier of the trigger

## Request body

- object: Request body for moving a trigger to a different agent
  - `targetAgentId` string, uuid, required: Agent that should own and run this trigger

## Response `200`

Successful response

- object: Response confirming the trigger was moved to the target agent
  - `success` boolean, required: Whether the move succeeded
  - `data` object, required
    - `id` string, uuid, required
    - `agentId` string, uuid, required
    - `organizationId` string, uuid, required
    - `source` 'jira' | 'jira-automation' | 'slack' | 'linear' | 'cron' | 'webhook' | 'email' | 'bugcrowd' | 'hackerone' | 'zscaler' | 'darktrace' | 'seon', required
    - `eventMode` 'direct' | 'alert_source': First-class event behavior. Missing only on legacy serialized snapshots.
    - `name` string, required
    - `description` string, nullable
    - `enabled` boolean, required
    - `createdAt` string, required
    - `updatedAt` string, required
    - `cronSchedule` string, nullable
    - `emailAddress` string, nullable
    - `config` object, required
    - `lastRunAttemptedAt` string, nullable
    - `lastRunSucceededAt` string, nullable
    - `alertCreatedNotificationDestinationIds` string[]: Slack destinations notified when this trigger creates an alert. Status updates and escalations for the alert reply in the thread that notification starts.

## Other responses

- `400`: Bad request — input validation failed or the request was malformed
- `401`: Unauthorized — missing or invalid API key / session
- `403`: Forbidden — the authenticated user lacks the required permissions
- `500`: Internal server error

---

[API](https://skmtc.dev/cotool/apis/cotool-api.md) - [All operations](https://skmtc.dev/cotool/apis/cotool-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cotool/apis/cotool-api/revisions/f5abe0add203?raw)
