Plan · Notificaciones y reportes
El catálogo de notificaciones, los interruptores y el resumen diario de cada persona, las rutas de canal y los reportes programados de la organización, y los canales donde publican. Parte de la API de Dailybot Plan (Beta).
En esta página
Beta
Plan está en beta. Todo lo que está bajo /plan en la aplicación web, los comandos del CLI y de la agent skill para proyectos, objetivos, tableros y tareas, y la API pública /v1/plan/ puede cambiar antes de la disponibilidad general. ¿Quieres probarlo con tu equipo? Escribe a [email protected].
El catálogo de notificaciones
Todos los tipos de notificación, personales y de la organización: el único catálogo desde el que se renderizan los ajustes web, el CLI y la agent skill. scope es personal (un interruptor que una persona configura para sí misma, por DM y/o correo) u org (un tipo que una ruta de canal puede publicar). Los valores key son identificadores estables en minúsculas; default es lo que una persona recibe antes de tocar el interruptor; los tipos immediate nunca quedan retenidos por la ventana de agrupación.
Objeto NotificationKind
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| key | string | Requerido | Identificador estable en minúsculas: lo que reciben items[].kind y los kinds de una ruta. |
| scope | enum | Requerido | personal (un interruptor que una persona configura para sí misma, DM y/o correo) u org (un tipo que una ruta puede publicar en un canal). |
| group | string | Requerido | La groups[].key a la que pertenece, para renderizar. |
| title | string | Requerido | — |
| description | string | Requerido | — |
| events | array<string> | Requerido | Los tipos de evento de tarea que lo producen. |
| targeting | enum | Requerido | A quién llega: me, watched, content_author, project_members, scheduled u org. |
| supports | array<string> | Requerido | Los canales que puede usar: chat, email. |
| default | object | Requerido | {chat, email}: lo que una persona recibe antes de tocar el interruptor. |
| immediate | boolean | Requerido | Un tipo inmediato nunca queda retenido por la ventana de agrupación. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| groups | array<object> | Requerido | Filas {key, title}, en orden de presentación. |
| kinds | array<NotificationKind> | Requerido | Los objetos NotificationKind. |
Errores
| Estado | Cuándo |
|---|---|
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
curl -sS "https://api.dailybot.com/v1/plan/notifications/catalog/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks notifications catalog{
"groups": [
{
"key": "my_work",
"title": "My work"
}
],
"kinds": [
{
"key": "task_assigned",
"scope": "personal",
"group": "my_work",
"title": "Assigned to me",
"description": "Someone made me the owner of a task.",
"events": [
"task.owner_changed"
],
"targeting": "me",
"supports": [
"chat",
"email"
],
"default": {
"chat": true,
"email": false
},
"immediate": true
}
]
}Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
Mis interruptores de notificaciones
Los interruptores efectivos de quien llama, un elemento por tipo personal, con valores chat / email: el interruptor guardado cuando existe (stored: true), o el predeterminado del catálogo (stored: false). destination dice adónde van las notificaciones de chat: un mensaje directo por defecto, o un canal público que la persona eligió. Una persona nunca recibe notificaciones de sus propias acciones, digan lo que digan estos valores.
Objeto NotificationDestination
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| type | enum | Requerido | dm (por defecto) o channel. |
| channel | ChatChannel | null | Requerido | El canal público cuando type es channel. Ver ChatChannel. |
Objeto ChatChannel
Objeto NotificationPreferenceItem
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| kind | string | Requerido | La key del catálogo. |
| group | string | Requerido | — |
| title | string | Requerido | — |
| supports | array<string> | Requerido | chat, email. |
| default | object | Requerido | {chat, email} del catálogo. |
| stored | boolean | Requerido | true cuando la persona configuró este interruptor; false cuando el valor es el predeterminado del catálogo. |
| chat | boolean | Requerido | Valor efectivo. |
| boolean | Requerido | Valor efectivo. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| destination | NotificationDestination | Requerido | Un objeto NotificationDestination. |
| items | array<NotificationPreferenceItem> | Requerido | Una fila por tipo personal: objetos NotificationPreferenceItem. |
| paused_until | datetime | null | Requerido | Reservado; siempre null en esta versión. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | La credencial es una key de agente o de la organización (`actor_required`); este endpoint requiere una persona. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | Las cuentas de invitado no pueden usar Plan (`guest_not_allowed`). |
curl -sS "https://api.dailybot.com/v1/plan/me/notifications/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks notifications get --me{
"destination": {
"type": "dm",
"channel": null
},
"items": [
{
"kind": "task_assigned",
"group": "my_work",
"title": "Assigned to me",
"supports": [
"chat",
"email"
],
"default": {
"chat": true,
"email": false
},
"stored": true,
"chat": true,
"email": true
}
],
"paused_until": null
}Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal, que actúa como su persona. Una key de agente o de la organización recibe `400 actor_required`.
Cambiar mis interruptores de notificaciones
Parcial: solo se escriben los tipos y canales que nombras; todo lo demás conserva su valor efectivo. Responde el cuerpo efectivo completo, igual que GET. Un tipo desconocido es 400 unknown_notification_kind y un campo desconocido es 400 unknown_field (extra.parameter lo nombra). Un canal de destination debe ser público (type: channel en GET /v1/plan/channels/); uno privado es 400 channel_not_found, y las notificaciones sobre trabajo solo para miembros siguen llegando por DM. paused_until está reservado: enviar un valor es 501 not_implemented.
Encabezados
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente. |
Cuerpo de la solicitud
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| destination | object | Opcional | {type: "dm"} o {type: "channel", channel: {external_id}}. |
| items | array<object> | Opcional | Filas {kind, chat?, email?}: la key del catálogo y los canales a configurar. Omite un canal para dejarlo como está. |
| paused_until | datetime | null | Opcional | Reservado. Solo se acepta null; una fecha y hora es 501 not_implemented. |
| agent_name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| destination | NotificationDestination | Requerido | Un objeto NotificationDestination. |
| items | array<NotificationPreferenceItem> | Requerido | Una fila por tipo personal: objetos NotificationPreferenceItem. |
| paused_until | datetime | null | Requerido | Reservado; siempre null en esta versión. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | Un tipo desconocido (`unknown_notification_kind`), un campo desconocido (`unknown_field`), un canal que no es público o no se conoce (`channel_not_found`), una key de agente o de la organización (`actor_required`), o un nombre de agente no válido (`invalid_agent_attribution`). |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | Las cuentas de invitado no pueden usar Plan (`guest_not_allowed`). |
curl -sS -X PUT "https://api.dailybot.com/v1/plan/me/notifications/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"kind": "task_assigned",
"email": true
},
{
"kind": "comment_added",
"chat": false
}
]
}'dailybot plan tasks notifications set --me task_assigned --email onProbarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:write`.
- Límite de solicitudes: 60 escrituras por minuto por actor.
- Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal, que actúa como su persona. Una key de agente o de la organización recibe `400 actor_required`.
Listar las rutas de canal de la organización
Todas las rutas: un canal de chat, los tipos de notificación de la organización que recibe y su alcance (todo el espacio de trabajo, algunos tableros o algunos proyectos). viewer.can_manage dice si quien llama puede crear o cambiar rutas. Cualquier miembro, y cualquier key, puede leer.
Parámetros de consulta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| page | integer | Opcional | Número de página, empezando en 1. |
| page_size | integer | Opcional | Filas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100. |
Objeto NotificationRoute
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| uuid | uuid | Requerido | Identificador público estable. |
| name | string | Requerido | Nombre de la ruta. |
| enabled | boolean | Requerido | Una ruta desactivada conserva su configuración y no publica nada. |
| channel | ChatChannel | Requerido | Dónde publica. Ver ChatChannel. |
| kinds | array<string> | Requerido | Los tipos de notificación de la organización que recibe (valores key del catálogo). |
| scope | RouteScope | Requerido | Qué trabajo cubre. Ver RouteScope. |
| created_by | UserRef | null | Requerido | Quién la creó. Ver UserRef. |
| created_at | datetime | null | Requerido | — |
| updated_at | datetime | null | Requerido | — |
Objeto RouteScope
Objeto RoutesViewer
Objeto UserRef
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| count | integer | Requerido | Número total de filas. |
| next | uri | Requerido | URL de la página siguiente, o null. |
| previous | uri | Requerido | URL de la página anterior, o null. |
| results | array<NotificationRoute> | Requerido | La página de objetos NotificationRoute. |
| viewer | RoutesViewer | Requerido | Un objeto RoutesViewer. |
Errores
| Estado | Cuándo |
|---|---|
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
curl -sS "https://api.dailybot.com/v1/plan/notification-routes/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks routes list{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "00000000-0000-4000-8000-000000000021",
"name": "Engineering channel",
"enabled": true,
"channel": {
"external_id": "C0123ABC",
"name": "engineering",
"type": "channel"
},
"kinds": [
"task_completed",
"project_update_posted",
"project_lead_changed"
],
"scope": {
"type": "boards",
"uuids": [
"00000000-0000-4000-8000-000000000002"
]
},
"created_by": {
"uuid": "00000000-0000-4000-8000-000000000001",
"name": "Ana"
},
"created_at": "2026-09-30T14:00:00Z",
"updated_at": "2026-09-30T14:00:00Z"
}
],
"viewer": {
"can_manage": true
}
}Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
Crear una ruta de canal
Solo administradores de la organización. Una ruta publica los tipos de notificación de la organización que elijas (una tarea completada, una actualización de proyecto, un cambio de líder…) en un canal de chat, para todo el espacio de trabajo o para algunos tableros o proyectos. Máximo 10 rutas por organización. Acepta Idempotency-Key.
Encabezados
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| Idempotency-Key | string | Opcional | Una clave que generas para esta intención. Una repetición con la misma clave y el mismo cuerpo devuelve la primera respuesta sin un segundo efecto secundario y lleva Idempotency-Replayed: true. Las claves se conservan durante 24 horas. La misma clave con un cuerpo distinto es 409 idempotency_key_payload_mismatch; una repetición mientras la primera llamada sigue en curso recibe 409 idempotency_in_progress durante hasta 120 segundos. |
| X-Dailybot-Agent-Name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente. |
Cuerpo de la solicitud
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | Opcional | Nombre de la ruta. |
| enabled | boolean | Opcional | true por defecto. |
| channel | object | Opcional | {external_id}: el id del canal en la plataforma, como lo lista GET /v1/plan/channels/. Un id desconocido es 400 channel_not_found. |
| kinds | array<string> | Opcional | Tipos de la organización del catálogo (scope: org). Cualquier otra cosa es 400 unknown_notification_kind. |
| scope | RouteScope | Opcional | {type, uuids}. Un tablero o proyecto solo para miembros es 400 route_scope_not_org_visible con extra.uuids: los canales solo reciben lo que todo el espacio de trabajo puede ver. |
| agent_name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| (body) | NotificationRoute | Requerido | Un objeto NotificationRoute. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | Un campo falló la validación: `channel_not_found`, `unknown_notification_kind`, `route_scope_not_org_visible` (`extra.uuids`), `unknown_field`, o `notification_routes_limit_reached` (`extra.limit`, 10 rutas). `invalid_agent_attribution` significa que el nombre del agente no es válido. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | No eres administrador de la organización (`insufficient_scope`), o eres invitado (`guest_not_allowed`). Una key de agente o de la organización también se rechaza aquí. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/notification-routes/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Engineering channel",
"channel": {
"external_id": "C0123ABC"
},
"kinds": [
"task_completed",
"project_update_posted",
"project_lead_changed"
],
"scope": {
"type": "boards",
"uuids": [
"00000000-0000-4000-8000-000000000002"
]
}
}'dailybot plan tasks routes create --name "Engineering channel" --channel C0123ABC --kind task_completed --kind project_update_posted --board 00000000-0000-4000-8000-000000000002Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
- Límite de solicitudes: 60 escrituras por minuto por actor.
- Solo administradores de la organización, con una sesión iniciada, un token de usuario del CLI o una API key personal. Cualquier miembro y cualquier key puede leer.
Obtener una ruta de canal
Una ruta. Una ruta de otra organización es 404.
Parámetros de ruta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| route_id | uuid | Requerido | El uuid de la ruta. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| (body) | NotificationRoute | Requerido | Un objeto NotificationRoute. |
Errores
| Estado | Cuándo |
|---|---|
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 404 | La ruta no existe en tu organización (`not_found`), nunca un 403. |
curl -sS "https://api.dailybot.com/v1/plan/notification-routes/00000000-0000-4000-8000-000000000021/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks routes get 00000000-0000-4000-8000-000000000021{
"uuid": "00000000-0000-4000-8000-000000000021",
"name": "Engineering channel",
"enabled": true,
"channel": {
"external_id": "C0123ABC",
"name": "engineering",
"type": "channel"
},
"kinds": [
"task_completed",
"project_update_posted",
"project_lead_changed"
],
"scope": {
"type": "boards",
"uuids": [
"00000000-0000-4000-8000-000000000002"
]
},
"created_by": {
"uuid": "00000000-0000-4000-8000-000000000001",
"name": "Ana"
},
"created_at": "2026-09-30T14:00:00Z",
"updated_at": "2026-09-30T14:00:00Z"
}Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
Cambiar una ruta de canal
Solo administradores de la organización. Parcial: solo se escriben los campos que envías, con la misma validación que al crear.
Parámetros de ruta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| route_id | uuid | Requerido | El uuid de la ruta. |
Encabezados
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente. |
Cuerpo de la solicitud
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | Opcional | Nombre de la ruta. |
| enabled | boolean | Opcional | true por defecto. |
| channel | object | Opcional | {external_id}: el id del canal en la plataforma, como lo lista GET /v1/plan/channels/. Un id desconocido es 400 channel_not_found. |
| kinds | array<string> | Opcional | Tipos de la organización del catálogo (scope: org). Cualquier otra cosa es 400 unknown_notification_kind. |
| scope | RouteScope | Opcional | {type, uuids}. Un tablero o proyecto solo para miembros es 400 route_scope_not_org_visible con extra.uuids: los canales solo reciben lo que todo el espacio de trabajo puede ver. |
| agent_name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| (body) | NotificationRoute | Requerido | Un objeto NotificationRoute. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | Un campo falló la validación: `channel_not_found`, `unknown_notification_kind`, `route_scope_not_org_visible` (`extra.uuids`), `unknown_field`, o `notification_routes_limit_reached` (`extra.limit`, 10 rutas). `invalid_agent_attribution` significa que el nombre del agente no es válido. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | No eres administrador de la organización (`insufficient_scope`), o eres invitado (`guest_not_allowed`). Una key de agente o de la organización también se rechaza aquí. |
| 404 | La ruta no existe en tu organización (`not_found`), nunca un 403. |
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/notification-routes/00000000-0000-4000-8000-000000000021/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enabled": false
}'dailybot plan tasks routes update 00000000-0000-4000-8000-000000000021 --disableProbarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
- Límite de solicitudes: 60 escrituras por minuto por actor.
- Solo administradores de la organización, con una sesión iniciada, un token de usuario del CLI o una API key personal. Cualquier miembro y cualquier key puede leer.
Borrar una ruta de canal
Solo administradores de la organización. El canal deja de recibir de inmediato. Responde 204.
Parámetros de ruta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| route_id | uuid | Requerido | El uuid de la ruta. |
Encabezados
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | La validación falló; el `code` de la respuesta indica qué campo. `invalid_agent_attribution` significa que el nombre del agente no es válido. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | No eres administrador de la organización (`insufficient_scope`), o eres invitado (`guest_not_allowed`). Una key de agente o de la organización también se rechaza aquí. |
| 404 | La ruta no existe en tu organización (`not_found`), nunca un 403. |
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/notification-routes/00000000-0000-4000-8000-000000000021/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks routes delete 00000000-0000-4000-8000-000000000021Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
- Límite de solicitudes: 60 escrituras por minuto por actor.
- Solo administradores de la organización, con una sesión iniciada, un token de usuario del CLI o una API key personal. Cualquier miembro y cualquier key puede leer.
Publicar un mensaje de prueba en el canal de una ruta, o previsualizarlo
Solo administradores de la organización. Con ?dry_run=true se renderiza la muestra y se resuelve el canal, y no se envía ni se registra nada. Sin él, se publica y registra un mensaje como cualquier publicación de la ruta.
Parámetros de ruta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| route_id | uuid | Requerido | El uuid de la ruta. |
Parámetros de consulta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| dry_run | boolean | Opcional | true solo renderiza y resuelve; no se envía ni se registra nada. Falla de forma segura: cualquier valor distinto de 0, false, no u off es un ensayo. |
Encabezados
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| dry_run | boolean | Requerido | Refleja la solicitud: true cuando no se envió nada. |
| channel | ChatChannel | Requerido | Un objeto ChatChannel. |
| text | string | Requerido | El mensaje de muestra renderizado. |
| sent | boolean | Requerido | false en un ensayo. |
| status | string | Opcional | El estado de la entrega cuando se envió. |
| delivery_uuid | uuid | null | Opcional | El registro de entrega cuando se envió; ver el endpoint de entregas. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | La validación falló; el `code` de la respuesta indica qué campo. `invalid_agent_attribution` significa que el nombre del agente no es válido. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | No eres administrador de la organización (`insufficient_scope`), o eres invitado (`guest_not_allowed`). Una key de agente o de la organización también se rechaza aquí. |
| 404 | La ruta no existe en tu organización (`not_found`), nunca un 403. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/notification-routes/00000000-0000-4000-8000-000000000021/send-test/?dry_run=true" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks routes send-test 00000000-0000-4000-8000-000000000021 --dry-run{
"dry_run": true,
"channel": {
"external_id": "C0123ABC",
"name": "engineering",
"type": "channel"
},
"text": "Test message from Dailybot Plan for the route \"Engineering channel\".",
"sent": false
}Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
- Límite de solicitudes: 60 escrituras por minuto por actor.
- Solo administradores de la organización, con una sesión iniciada, un token de usuario del CLI o una API key personal. Cualquier miembro y cualquier key puede leer.
/v1/plan/notification-routes/{route_id}/deliveries/BetaAPI keyCLI AuthPaginación por número de páginaLas últimas entregas de una ruta
Las 20 entregas más recientes, de la más nueva a la más antigua: sent, failed (con un código de motivo) o skipped (not_org_visible, rate_limited). Nunca el texto del mensaje.
Parámetros de ruta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| route_id | uuid | Requerido | El uuid de la ruta. |
Objeto DeliveryRecord
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| uuid | uuid | Requerido | — |
| status | enum | Requerido | sent, failed (ver error) o skipped (not_org_visible, rate_limited). |
| channel | enum | Requerido | chat o email. |
| error | string | null | Requerido | Un código de motivo cuando la entrega falló o se omitió. Nunca el texto del mensaje. |
| message_id | string | null | Requerido | El id del mensaje en la plataforma cuando se publicó. |
| created_at | datetime | Requerido | — |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| count | integer | Requerido | Número total de filas. |
| next | uri | Requerido | URL de la página siguiente, o null. |
| previous | uri | Requerido | URL de la página anterior, o null. |
| results | array<DeliveryRecord> | Requerido | Los objetos DeliveryRecord. |
Errores
| Estado | Cuándo |
|---|---|
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 404 | La ruta no existe en tu organización (`not_found`), nunca un 403. |
curl -sS "https://api.dailybot.com/v1/plan/notification-routes/00000000-0000-4000-8000-000000000021/deliveries/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks routes deliveries 00000000-0000-4000-8000-000000000021Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
Buscar los canales de chat en los que pueden publicar rutas y reportes
Los canales de la plataforma conectada, ordenados por nombre, como una página. search es una subcadena del nombre sin distinguir mayúsculas. platform nombra la plataforma (slack, msteams, discord, google_chat); sin plataforma de chat conectada la respuesta es 400 platform_not_connected. Los administradores de la organización ven los canales privados donde está el bot; los demás solo ven canales públicos (un canal privado está ausente, no prohibido). type=channel responde solo canales públicos, para todos: lo que debe ser un destino personal de notificaciones.
Parámetros de consulta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| search | string | Opcional | Subcadena del nombre del canal, sin distinguir mayúsculas. |
| type | string | Opcional | channel responde solo canales públicos, para todos. Sin él, los administradores de la organización también ven los canales privados donde está el bot. |
| page | integer | Opcional | Número de página, empezando en 1. |
| page_size | integer | Opcional | Filas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| count | integer | Requerido | Número total de filas. |
| next | uri | Requerido | URL de la página siguiente, o null. |
| previous | uri | Requerido | URL de la página anterior, o null. |
| results | array<ChatChannel> | Requerido | La página de objetos ChatChannel. |
| platform | string | Requerido | slack, msteams, discord o google_chat. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | No hay una plataforma de chat conectada (`platform_not_connected`), o `type` o un valor de paginación no es válido. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
curl -sS "https://api.dailybot.com/v1/plan/channels/?search=eng&type=channel" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks channels search eng --type channel{
"count": 1,
"next": null,
"previous": null,
"platform": "slack",
"results": [
{
"external_id": "C0123ABC",
"name": "engineering",
"type": "channel"
}
]
}Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
Listar los reportes programados de la organización
Todos los reportes programados con su tipo (daily, week_start, week_end), weekdays ISO (lunes = 1), time local en su timezone IANA, canal, destinatarios de correo, alcance y última ejecución. viewer.can_manage dice si quien llama puede cambiarlos (un administrador de la organización).
Parámetros de consulta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| page | integer | Opcional | Número de página, empezando en 1. |
| page_size | integer | Opcional | Filas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100. |
Objeto ReportSchedule
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| uuid | uuid | Requerido | — |
| name | string | Requerido | — |
| kind | enum | Requerido | daily, week_start o week_end. |
| enabled | boolean | Requerido | — |
| weekdays | array<integer> | Requerido | Días ISO, lunes = 1. Un reporte week_start o week_end tiene exactamente uno. |
| time | string | Requerido | HH:MM, 24 horas, en timezone. |
| timezone | string | Requerido | Nombre IANA. |
| channel | ChatChannel | null | Requerido | Dónde publica, o null si solo va por correo. Ver ChatChannel. |
| email_recipients | array<UserRef> | Requerido | Ver UserRef. |
| scope | RouteScope | Requerido | Ver RouteScope. |
| created_by | UserRef | null | Requerido | — |
| last_run | ReportRun | null | Requerido | Ver ReportRun. |
| created_at | datetime | null | Requerido | — |
| updated_at | datetime | null | Requerido | — |
Objeto ReportRun
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| uuid | uuid | Requerido | — |
| period_key | string | Requerido | El periodo que cubrió la ejecución, por ejemplo una fecha o una semana ISO. |
| scheduled_for | datetime | Requerido | — |
| sent_at | datetime | null | Requerido | — |
| status | enum | Requerido | sent, failed (ver error) o skipped_empty. |
| error | string | null | Requerido | Un código de motivo cuando falló. |
| channel_message_id | string | null | Requerido | — |
| email_count | integer | Requerido | Cuántos correos se enviaron. |
| is_test | boolean | Requerido | true para un envío de prueba; no cuenta como la ejecución del periodo. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| count | integer | Requerido | Número total de filas. |
| next | uri | Requerido | URL de la página siguiente, o null. |
| previous | uri | Requerido | URL de la página anterior, o null. |
| results | array<ReportSchedule> | Requerido | La página de objetos ReportSchedule. |
| viewer | RoutesViewer | Requerido | Un objeto RoutesViewer. |
Errores
| Estado | Cuándo |
|---|---|
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
curl -sS "https://api.dailybot.com/v1/plan/reports/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks reports list{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "00000000-0000-4000-8000-000000000022",
"name": "Friday wrap-up",
"kind": "week_end",
"enabled": true,
"weekdays": [
5
],
"time": "16:00",
"timezone": "America/Bogota",
"channel": {
"external_id": "C0123ABC",
"name": "engineering",
"type": "channel"
},
"email_recipients": [
{
"uuid": "00000000-0000-4000-8000-000000000001",
"name": "Ana"
}
],
"scope": {
"type": "all",
"uuids": []
},
"created_by": {
"uuid": "00000000-0000-4000-8000-000000000001",
"name": "Ana"
},
"last_run": null,
"created_at": "2026-09-30T14:00:00Z",
"updated_at": "2026-09-30T14:00:00Z"
}
],
"viewer": {
"can_manage": true
}
}Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
Programar un reporte
Solo administradores de la organización. Un reporte diario dice qué se espera hoy y quién es responsable; uno de inicio de semana mira la semana que empieza; uno de fin de semana dice qué se cerró, qué está en riesgo y qué no se cerró. Se publica en un canal, va por correo a las personas que nombres, o ambas cosas, los días de la semana y a la hora local que elijas. Máximo 10 reportes programados por organización. Acepta Idempotency-Key.
Encabezados
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| Idempotency-Key | string | Opcional | Una clave que generas para esta intención. Una repetición con la misma clave y el mismo cuerpo devuelve la primera respuesta sin un segundo efecto secundario y lleva Idempotency-Replayed: true. Las claves se conservan durante 24 horas. La misma clave con un cuerpo distinto es 409 idempotency_key_payload_mismatch; una repetición mientras la primera llamada sigue en curso recibe 409 idempotency_in_progress durante hasta 120 segundos. |
| X-Dailybot-Agent-Name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente. |
Cuerpo de la solicitud
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | Opcional | Nombre del reporte programado. |
| kind | enum | Opcional | daily (qué se espera hoy, con responsables), week_start (la semana que empieza) o week_end (qué se cerró, qué está en riesgo, qué no se cerró). |
| enabled | boolean | Opcional | true por defecto. |
| weekdays | array<integer> | Opcional | Días ISO, lunes = 1 … domingo = 7. Un reporte daily acepta cualquier conjunto (por ejemplo [1,2,3,4,5]); week_start y week_end aceptan exactamente uno. |
| time | string | Opcional | HH:MM, 24 horas, en timezone. |
| timezone | string | Opcional | Nombre IANA. Por defecto, el de la organización. |
| channel | object | null | Opcional | {external_id} del canal donde publicar, o null si solo va por correo. Un reporte programado necesita un canal, destinatarios de correo, o ambos. |
| email_recipients | array<uuid> | Opcional | Uuids de usuarios que lo reciben por correo. [] los limpia. |
| scope | RouteScope | Opcional | {type, uuids}: todo el espacio de trabajo, algunos tableros o algunos proyectos. El trabajo solo para miembros se rechaza con 400 route_scope_not_org_visible. |
| agent_name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| (body) | ReportSchedule | Requerido | Un objeto ReportSchedule. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | Un campo del reporte programado no es válido (`invalid_schedule`, `extra.parameter` es `weekdays`, `time`, `timezone`, `channel` o `kind`), el canal es desconocido (`channel_not_found`), el alcance nombra trabajo solo para miembros (`route_scope_not_org_visible`), un campo es desconocido (`unknown_field`), o la organización ya tiene 10 reportes programados (`report_schedules_limit_reached`, `extra.limit`). `invalid_agent_attribution` significa que el nombre del agente no es válido. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | No eres administrador de la organización (`insufficient_scope`), o eres invitado (`guest_not_allowed`). Una key de agente o de la organización también se rechaza aquí. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/reports/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Friday wrap-up",
"kind": "week_end",
"weekdays": [
5
],
"time": "16:00",
"timezone": "America/Bogota",
"channel": {
"external_id": "C0123ABC"
},
"scope": {
"type": "all",
"uuids": []
}
}'dailybot plan tasks reports create --name "Friday wrap-up" --kind week_end --weekday 5 --time 16:00 --channel C0123ABCProbarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
- Límite de solicitudes: 60 escrituras por minuto por actor.
- Solo administradores de la organización, con una sesión iniciada, un token de usuario del CLI o una API key personal. Cualquier miembro y cualquier key puede leer.
Obtener un reporte programado
Un reporte programado. Uno de otra organización es 404.
Parámetros de ruta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| report_id | uuid | Requerido | El uuid del reporte programado. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| (body) | ReportSchedule | Requerido | Un objeto ReportSchedule. |
Errores
| Estado | Cuándo |
|---|---|
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 404 | El reporte programado no existe en tu organización (`not_found`), nunca un 403. |
curl -sS "https://api.dailybot.com/v1/plan/reports/00000000-0000-4000-8000-000000000022/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks reports get 00000000-0000-4000-8000-000000000022{
"uuid": "00000000-0000-4000-8000-000000000022",
"name": "Friday wrap-up",
"kind": "week_end",
"enabled": true,
"weekdays": [
5
],
"time": "16:00",
"timezone": "America/Bogota",
"channel": {
"external_id": "C0123ABC",
"name": "engineering",
"type": "channel"
},
"email_recipients": [
{
"uuid": "00000000-0000-4000-8000-000000000001",
"name": "Ana"
}
],
"scope": {
"type": "all",
"uuids": []
},
"created_by": {
"uuid": "00000000-0000-4000-8000-000000000001",
"name": "Ana"
},
"last_run": null,
"created_at": "2026-09-30T14:00:00Z",
"updated_at": "2026-09-30T14:00:00Z"
}Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
Cambiar un reporte programado
Solo administradores de la organización. Parcial, con la misma validación que al crear. channel: null limpia el canal y email_recipients: [] limpia los destinatarios; limpiar ambos es 400 invalid_schedule (extra.parameter: "channel").
Parámetros de ruta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| report_id | uuid | Requerido | El uuid del reporte programado. |
Encabezados
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente. |
Cuerpo de la solicitud
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | Opcional | Nombre del reporte programado. |
| kind | enum | Opcional | daily (qué se espera hoy, con responsables), week_start (la semana que empieza) o week_end (qué se cerró, qué está en riesgo, qué no se cerró). |
| enabled | boolean | Opcional | true por defecto. |
| weekdays | array<integer> | Opcional | Días ISO, lunes = 1 … domingo = 7. Un reporte daily acepta cualquier conjunto (por ejemplo [1,2,3,4,5]); week_start y week_end aceptan exactamente uno. |
| time | string | Opcional | HH:MM, 24 horas, en timezone. |
| timezone | string | Opcional | Nombre IANA. Por defecto, el de la organización. |
| channel | object | null | Opcional | {external_id} del canal donde publicar, o null si solo va por correo. Un reporte programado necesita un canal, destinatarios de correo, o ambos. |
| email_recipients | array<uuid> | Opcional | Uuids de usuarios que lo reciben por correo. [] los limpia. |
| scope | RouteScope | Opcional | {type, uuids}: todo el espacio de trabajo, algunos tableros o algunos proyectos. El trabajo solo para miembros se rechaza con 400 route_scope_not_org_visible. |
| agent_name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| (body) | ReportSchedule | Requerido | Un objeto ReportSchedule. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | Un campo del reporte programado no es válido (`invalid_schedule`, `extra.parameter` es `weekdays`, `time`, `timezone`, `channel` o `kind`), el canal es desconocido (`channel_not_found`), el alcance nombra trabajo solo para miembros (`route_scope_not_org_visible`), un campo es desconocido (`unknown_field`), o la organización ya tiene 10 reportes programados (`report_schedules_limit_reached`, `extra.limit`). `invalid_agent_attribution` significa que el nombre del agente no es válido. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | No eres administrador de la organización (`insufficient_scope`), o eres invitado (`guest_not_allowed`). Una key de agente o de la organización también se rechaza aquí. |
| 404 | El reporte programado no existe en tu organización (`not_found`), nunca un 403. |
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/reports/00000000-0000-4000-8000-000000000022/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"weekdays": [
1
],
"kind": "week_start",
"time": "09:00"
}'dailybot plan tasks reports update 00000000-0000-4000-8000-000000000022 --kind week_start --weekday 1 --time 09:00Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
- Límite de solicitudes: 60 escrituras por minuto por actor.
- Solo administradores de la organización, con una sesión iniciada, un token de usuario del CLI o una API key personal. Cualquier miembro y cualquier key puede leer.
Borrar un reporte programado
Solo administradores de la organización. Sus ejecuciones se borran con él. Responde 204.
Parámetros de ruta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| report_id | uuid | Requerido | El uuid del reporte programado. |
Encabezados
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | La validación falló; el `code` de la respuesta indica qué campo. `invalid_agent_attribution` significa que el nombre del agente no es válido. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | No eres administrador de la organización (`insufficient_scope`), o eres invitado (`guest_not_allowed`). Una key de agente o de la organización también se rechaza aquí. |
| 404 | El reporte programado no existe en tu organización (`not_found`), nunca un 403. |
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/reports/00000000-0000-4000-8000-000000000022/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks reports delete 00000000-0000-4000-8000-000000000022Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
- Límite de solicitudes: 60 escrituras por minuto por actor.
- Solo administradores de la organización, con una sesión iniciada, un token de usuario del CLI o una API key personal. Cualquier miembro y cualquier key puede leer.
Previsualizar un reporte programado con datos reales
El reporte tal como se enviaría ahora: el mismo ReportDocument desde el que se renderizan el mensaje de chat y el correo. Los reportes de la organización solo incluyen tableros y proyectos que todo el espacio de trabajo puede ver.
Parámetros de ruta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| report_id | uuid | Requerido | El uuid del reporte programado. |
Objeto ReportDocument
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| kind | enum | Requerido | daily, week_start, week_end o personal_daily. |
| locale | string | Requerido | — |
| header | object | Requerido | {title, period_key, period_label, scope}. |
| sections | array<ReportSection> | Requerido | Ver ReportSection. |
| empty | boolean | Requerido | true cuando ninguna sección tiene elementos. |
| narrative | string | Opcional | Un párrafo breve de resumen, opcional. |
Objeto ReportSection
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| key | string | Requerido | Clave estable de la sección, por ejemplo closed, at_risk, due_today. |
| title | string | Requerido | — |
| count | integer | Requerido | — |
| empty | boolean | Requerido | — |
| items | array<ReportItem> | Requerido | Ver ReportItem. |
Objeto ReportItem
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| type | enum | Requerido | task, project, milestone, goal o text. |
| uuid | string | Requerido | — |
| key | string | Opcional | La clave de la tarea, como ENG-142, cuando el elemento es una tarea. |
| title | string | Requerido | — |
| url | string | Requerido | Enlace directo a la aplicación web. |
| owner | UserRef | Opcional | — |
| due_date | date | Opcional | — |
| state | string | Opcional | — |
| category | string | Opcional | — |
| health | string | Opcional | — |
| badges | array<string> | Requerido | Marcas cortas como overdue o blocked. |
Objeto UserRef
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| (body) | ReportDocument | Requerido | Un objeto ReportDocument. |
Errores
| Estado | Cuándo |
|---|---|
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 404 | El reporte programado no existe en tu organización (`not_found`), nunca un 403. |
curl -sS "https://api.dailybot.com/v1/plan/reports/00000000-0000-4000-8000-000000000022/preview/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks reports preview 00000000-0000-4000-8000-000000000022{
"kind": "week_end",
"locale": "en",
"header": {
"title": "Week 40 wrap-up",
"period_key": "2026-W40",
"period_label": "Sep 28 \u2013 Oct 2",
"scope": {
"type": "all"
}
},
"sections": [
{
"key": "closed",
"title": "Closed this week",
"count": 1,
"empty": false,
"items": [
{
"type": "task",
"uuid": "00000000-0000-4000-8000-000000000011",
"key": "ENG-142",
"title": "Ship the onboarding checklist",
"url": "https://app.dailybot.com/tasks/ENG-142",
"owner": {
"uuid": "00000000-0000-4000-8000-000000000001",
"name": "Ana"
},
"due_date": "2026-10-01",
"state": "Done",
"category": "done",
"badges": []
}
]
},
{
"key": "at_risk",
"title": "At risk",
"count": 0,
"empty": true,
"items": []
}
],
"empty": false
}Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
Enviar ahora un reporte programado como prueba, o previsualizar lo que se enviaría
Solo administradores de la organización. Con ?dry_run=true se responden el documento, el canal y los destinatarios, y no se envía nada. Sin él, el reporte se envía ahora y se registra como ejecución de prueba (is_test: true); no cuenta como la ejecución del periodo.
Parámetros de ruta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| report_id | uuid | Requerido | El uuid del reporte programado. |
Parámetros de consulta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| dry_run | boolean | Opcional | true solo renderiza y resuelve; no se envía ni se registra nada. Falla de forma segura: cualquier valor distinto de 0, false, no u off es un ensayo. |
Encabezados
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| dry_run | boolean | Requerido | Refleja la solicitud: true cuando no se envió nada. |
| document | ReportDocument | Requerido | Un objeto ReportDocument. |
| channel | ChatChannel | null | Requerido | Un objeto ChatChannel. |
| email_recipients | array<UserRef> | Requerido | Los objetos UserRef. |
| sent | boolean | Requerido | false en un ensayo. |
| run | ReportRun | Opcional | La ejecución de prueba cuando se envió. Ver ReportRun. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | La validación falló; el `code` de la respuesta indica qué campo. `invalid_agent_attribution` significa que el nombre del agente no es válido. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | No eres administrador de la organización (`insufficient_scope`), o eres invitado (`guest_not_allowed`). Una key de agente o de la organización también se rechaza aquí. |
| 404 | El reporte programado no existe en tu organización (`not_found`), nunca un 403. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/reports/00000000-0000-4000-8000-000000000022/send-test/?dry_run=true" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks reports send-test 00000000-0000-4000-8000-000000000022 --dry-runProbarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
- Límite de solicitudes: 60 escrituras por minuto por actor.
- Solo administradores de la organización, con una sesión iniciada, un token de usuario del CLI o una API key personal. Cualquier miembro y cualquier key puede leer.
Las últimas ejecuciones de un reporte programado
Las 20 ejecuciones más recientes, de la más nueva a la más antigua: sent, failed (con un código de motivo) o skipped_empty. Los envíos de prueba llevan is_test: true.
Parámetros de ruta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| report_id | uuid | Requerido | El uuid del reporte programado. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| count | integer | Requerido | Número total de filas. |
| next | uri | Requerido | URL de la página siguiente, o null. |
| previous | uri | Requerido | URL de la página anterior, o null. |
| results | array<ReportRun> | Requerido | Las objetos ReportRun. |
Errores
| Estado | Cuándo |
|---|---|
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 404 | El reporte programado no existe en tu organización (`not_found`), nunca un 403. |
curl -sS "https://api.dailybot.com/v1/plan/reports/00000000-0000-4000-8000-000000000022/runs/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks reports runs 00000000-0000-4000-8000-000000000022Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
Mis ajustes del resumen diario
Los ajustes del resumen diario de quien llama, con valores efectivos. Sin nada guardado, la respuesta es la predeterminada: los días laborales de la persona (lunes a viernes si nunca los cambió), 09:00 en su propia zona horaria (timezone_is_default: true), chat activado, correo desactivado, enabled: false. La parte de chat siempre es un mensaje directo, nunca el canal de notificaciones de la persona: el resumen incluye también su trabajo solo para miembros.
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| enabled | boolean | Requerido | Si el resumen se envía o no. |
| weekdays | array<integer> | Requerido | Días ISO, lunes = 1. |
| time | string | Requerido | HH:MM, 24 horas, en timezone. |
| timezone | string | Requerido | Nombre IANA. |
| timezone_is_default | boolean | Requerido | true cuando la zona horaria es la de la persona y no una que configuró aquí. |
| chat | boolean | Requerido | Entregar por mensaje directo. |
| boolean | Requerido | Entregar por correo. | |
| skip_when_empty | boolean | Requerido | Omitir el resumen un día en que no hay nada que decir. |
| effective | boolean | Requerido | true cuando los días son los días laborales predeterminados de la persona y no un conjunto guardado aquí. |
| last_sent_at | datetime | null | Requerido | Cuándo se envió el resumen por última vez, o null. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | La credencial es una key de agente o de la organización (`actor_required`); este endpoint requiere una persona. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | Las cuentas de invitado no pueden usar Plan (`guest_not_allowed`). |
curl -sS "https://api.dailybot.com/v1/plan/me/briefing/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks briefing get{
"enabled": true,
"weekdays": [
1,
2,
3,
4,
5
],
"time": "09:00",
"timezone": "America/Bogota",
"timezone_is_default": true,
"chat": true,
"email": false,
"skip_when_empty": true,
"effective": true,
"last_sent_at": "2026-09-30T14:00:00Z"
}Probarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal, que actúa como su persona. Una key de agente o de la organización recibe `400 actor_required`.
Cambiar mi resumen diario
Parcial: solo se escriben los campos que envías. weekdays son ISO 1..7, time es HH:MM, timezone es un nombre IANA (opcional: la primera escritura guarda el de la persona). Al menos uno de chat y email debe quedar activado. Los rechazos son 400 invalid_schedule (extra.parameter) y 400 unknown_field. Responde el cuerpo efectivo completo.
Encabezados
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente. |
Cuerpo de la solicitud
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| enabled | boolean | Opcional | Si el resumen se envía o no. |
| weekdays | array<integer> | Opcional | Días ISO, lunes = 1 … domingo = 7. |
| time | string | Opcional | HH:MM, 24 horas. |
| timezone | string | Opcional | Nombre IANA. |
| chat | boolean | Opcional | Entregar por mensaje directo. |
| boolean | Opcional | Entregar por correo. | |
| skip_when_empty | boolean | Opcional | Omitir el resumen un día en que no hay nada que decir. |
| agent_name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| enabled | boolean | Requerido | Si el resumen se envía o no. |
| weekdays | array<integer> | Requerido | Días ISO, lunes = 1. |
| time | string | Requerido | HH:MM, 24 horas, en timezone. |
| timezone | string | Requerido | Nombre IANA. |
| timezone_is_default | boolean | Requerido | true cuando la zona horaria es la de la persona y no una que configuró aquí. |
| chat | boolean | Requerido | Entregar por mensaje directo. |
| boolean | Requerido | Entregar por correo. | |
| skip_when_empty | boolean | Requerido | Omitir el resumen un día en que no hay nada que decir. |
| effective | boolean | Requerido | true cuando los días son los días laborales predeterminados de la persona y no un conjunto guardado aquí. |
| last_sent_at | datetime | null | Requerido | Cuándo se envió el resumen por última vez, o null. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | Un campo no es válido (`invalid_schedule`, `extra.parameter` lo nombra), es desconocido (`unknown_field`), ambos canales están desactivados, la credencial es una key de agente o de la organización (`actor_required`), o el nombre del agente no es válido (`invalid_agent_attribution`). |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | Las cuentas de invitado no pueden usar Plan (`guest_not_allowed`). |
curl -sS -X PUT "https://api.dailybot.com/v1/plan/me/briefing/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"weekdays": [
1,
2,
3,
4,
5
],
"time": "08:30",
"email": true
}'dailybot plan tasks briefing set --enable --weekday 1,2,3,4,5 --time 08:30 --email onProbarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:write`.
- Límite de solicitudes: 60 escrituras por minuto por actor.
- Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal, que actúa como su persona. Una key de agente o de la organización recibe `400 actor_required`.
Previsualizar el resumen de hoy
El resumen de hoy para quien llama, renderizado ahora: el ReportDocument personal_daily con lo vencido, lo que vence hoy, lo en curso, lo bloqueado y lo siguiente, las menciones sin leer y los proyectos que lidera.
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| (body) | ReportDocument | Requerido | Un objeto ReportDocument. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | La credencial es una key de agente o de la organización (`actor_required`); este endpoint requiere una persona. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | Las cuentas de invitado no pueden usar Plan (`guest_not_allowed`). |
curl -sS "https://api.dailybot.com/v1/plan/me/briefing/preview/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks briefing previewProbarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:read`.
- Límite de solicitudes: 120 lecturas por minuto por actor.
- Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal, que actúa como su persona. Una key de agente o de la organización recibe `400 actor_required`.
Enviarme ahora el resumen de hoy, o previsualizarlo
Con ?dry_run=true no se envía nada. Sin él, el resumen de hoy le llega a quien llama por mensaje directo y/o correo, según sus ajustes.
Parámetros de consulta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| dry_run | boolean | Opcional | true solo renderiza y resuelve; no se envía ni se registra nada. Falla de forma segura: cualquier valor distinto de 0, false, no u off es un ensayo. |
Encabezados
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | El nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente. |
Respuesta
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| dry_run | boolean | Requerido | Refleja la solicitud: true cuando no se envió nada. |
| document | ReportDocument | Requerido | Un objeto ReportDocument. |
| sent | boolean | Requerido | false en un ensayo. |
Errores
| Estado | Cuándo |
|---|---|
| 400 | La credencial es una key de agente o de la organización (`actor_required`); este endpoint requiere una persona. |
| 401 | Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected]. |
| 403 | Las cuentas de invitado no pueden usar Plan (`guest_not_allowed`). |
curl -sS -X POST "https://api.dailybot.com/v1/plan/me/briefing/send-test/?dry_run=true" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks briefing send-test --dry-runProbarlo
Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.
- Scope: `tasks:write`.
- Límite de solicitudes: 60 escrituras por minuto por actor.
- Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal, que actúa como su persona. Una key de agente o de la organización recibe `400 actor_required`.
Esta página es la referencia de Plan · Notificaciones y reportes. Todos los endpoints viven bajo https://api.dailybot.com/v1/plan/ y responden JSON.
Autentícate con una sesión iniciada o un token de usuario del CLI (Authorization: Bearer …), o con una API key (X-API-KEY). Una API key personal actúa como su persona y puede hacer todo lo que esa persona puede hacer en Dailybot; una key de agente o de la organización nunca actúa como una persona y se rechaza en los endpoints que la requieren. En un endpoint, la insignia API key significa que también se acepta una key de agente o de la organización. Consulta Autenticación para Plan, Autenticación y Errores para las reglas comunes a todas las APIs de Dailybot.
Si es tu primera vez con Plan, lee la introducción para entender el modelo: proyectos, tableros, estados, claves, orden, versiones y archivado.
Los endpoints personales (me/notifications, me/briefing) requieren una persona: una sesión iniciada, un token de usuario del CLI o una API key personal; una key de agente o de la organización recibe 400 actor_required. Las rutas, los reportes programados y sus envíos de prueba son para administradores de la organización. Todo envío de prueba acepta ?dry_run=true, que renderiza y resuelve sin enviar. El resumen de una persona siempre llega por mensaje directo y/o correo, nunca a un canal.