duvo.ai Triggers API
Configure event triggers that start a Run automatically when an external event fires (e.g. an email arrives, a Linear issue is created, or a file changes in Google Drive)
Configure event triggers that start a Run automatically when an external event fires (e.g. an email arrives, a Linear issue is created, or a file changes in Google Drive)
openapi: 3.0.3
info:
title: Duvo Public Agent Folders Triggers API
description: Public API for programmatic access to Duvo. Authenticate with API keys created in the Duvo dashboard.
version: 1.0.0
servers:
- url: https://api.duvo.ai
description: Production server
tags:
- name: Triggers
description: Configure event triggers that start a Run automatically when an external event fires (e.g. an email arrives, a Linear issue is created, or a file changes in Google Drive)
paths:
/v2/triggers/{agentId}:
get:
operationId: listAgentTriggers
tags:
- Triggers
description: List the trigger definitions the authenticated user owns on an agent (Agent in the Duvo UI). Triggers start a Run automatically when an external event fires (e.g. an email arrives or a Linear issue is created).
parameters:
- schema:
type: string
format: uuid
in: path
name: agentId
required: true
description: The agent's unique identifier
security:
- bearerAuth: []
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
triggers:
type: array
items:
type: object
properties:
id:
type: string
agent_id:
type: string
user_id:
type: string
integration_slug:
type: string
trigger_type:
type: string
filter_config:
type: object
additionalProperties: {}
integration_instance_id:
type: string
enabled:
type: boolean
auto_disabled_at:
nullable: true
type: string
auto_disabled_reason:
nullable: true
type: string
consecutive_missing_connection_failures:
type: integer
minimum: 0
maximum: 9007199254740991
first_missing_connection_failure_at:
nullable: true
type: string
last_missing_connection_failure_at:
nullable: true
type: string
created_at:
type: string
updated_at:
type: string
required:
- id
- agent_id
- user_id
- integration_slug
- trigger_type
- filter_config
- integration_instance_id
- enabled
- auto_disabled_at
- auto_disabled_reason
- consecutive_missing_connection_failures
- first_missing_connection_failure_at
- last_missing_connection_failure_at
- created_at
- updated_at
additionalProperties: false
required:
- triggers
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'403':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
summary: List Agent Triggers
put:
operationId: upsertAgentTrigger
tags:
- Triggers
description: 'Create or update the authenticated user''s trigger for an integration on an agent. The integration must already be connected to the agent (its OAuth connection set up in the Duvo dashboard). Set `enabled: false` to pause a trigger without deleting it.'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
integration_slug:
type: string
description: Integration slug the trigger fires for (e.g. `gmail`, `outlook`, `linear-native`, `google-drive`).
trigger_type:
type: string
description: Trigger type within the integration (e.g. `email_received`). Discover valid values via the trigger types endpoint.
filter_config:
description: Integration-specific filter config (e.g. sender/subject filters). Shape comes from the integration's filter schema.
default: {}
type: object
additionalProperties: {}
enabled:
default: true
description: Whether the trigger is active. Defaults to true.
type: boolean
required:
- integration_slug
- trigger_type
parameters:
- schema:
type: string
format: uuid
in: path
name: agentId
required: true
description: The agent's unique identifier
security:
- bearerAuth: []
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
id:
type: string
agent_id:
type: string
user_id:
type: string
integration_slug:
type: string
trigger_type:
type: string
filter_config:
type: object
additionalProperties: {}
integration_instance_id:
type: string
enabled:
type: boolean
auto_disabled_at:
nullable: true
type: string
auto_disabled_reason:
nullable: true
type: string
consecutive_missing_connection_failures:
type: integer
minimum: 0
maximum: 9007199254740991
first_missing_connection_failure_at:
nullable: true
type: string
last_missing_connection_failure_at:
nullable: true
type: string
created_at:
type: string
updated_at:
type: string
required:
- id
- agent_id
- user_id
- integration_slug
- trigger_type
- filter_config
- integration_instance_id
- enabled
- auto_disabled_at
- auto_disabled_reason
- consecutive_missing_connection_failures
- first_missing_connection_failure_at
- last_missing_connection_failure_at
- created_at
- updated_at
additionalProperties: false
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'403':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'409':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
summary: Upsert Agent Trigger
/v2/trigger-config/{agentId}:
get:
operationId: listAgentTriggerTypes
tags:
- Triggers
description: List the trigger types available for an agent, grouped by integration. Use the returned `integration_slug` and `trigger_type` values when creating a trigger.
parameters:
- schema:
type: string
format: uuid
in: path
name: agentId
required: true
description: The agent's unique identifier
security:
- bearerAuth: []
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
trigger_types:
type: array
items:
type: object
properties:
integration_slug:
type: string
integration_name:
type: string
icon_url:
type: string
trigger_type:
type: string
label:
type: string
description:
type: string
filter_schema:
type: object
additionalProperties: {}
required:
- integration_slug
- integration_name
- icon_url
- trigger_type
- label
- description
- filter_schema
additionalProperties: false
required:
- trigger_types
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'403':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
summary: List Agent Trigger Types
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: API key authentication. Get your API key from the Duvo dashboard.