Check-ins y Formularios
Los check-ins son el núcleo de la comunicación asíncrona de Dailybot. Usa estos endpoints para crear, gestionar y obtener configuraciones de check-ins y sus respuestas. Un check-in recopila respuestas estructuradas de los miembros del equipo en un horario recurrente.
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /v1/checkins/ | Listar todos los check-ins |
| GET | /v1/checkins/{checkin-uuid}/ | Obtener un check-in específico |
| POST | /v1/checkins/ | Crear un check-in |
| PATCH | /v1/checkins/{checkin-uuid}/ | Actualizar un check-in |
| DELETE | /v1/checkins/{checkin-uuid}/ | Eliminar un check-in |
| GET | /v1/checkins/{checkin-uuid}/responses/ | Listar respuestas del check-in |
| POST | /v1/checkins/{checkin-uuid}/send-reminders/ | Enviar recordatorios |
| POST | /v1/checkins/{checkin-uuid}/responses/ | Completar respuestas |
| GET | /v1/templates/ | Listar plantillas |
| GET | /v1/templates/{template-id}/ | Obtener una plantilla específica |
| GET | /v1/forms/ | Listar formularios |
Listar Check-ins
/v1/checkins/ Devuelve la lista de check-ins visibles para el usuario autenticado.
Parámetros de Consulta
| Name | Type | Required | Description |
|---|---|---|---|
date | string | Optional | Fecha de contexto (YYYY-MM-DD). Cuando se proporciona, se usa para resumen y contexto de usuarios pendientes. |
include_summary | boolean | Optional | Si es true, incluye summary (ej. completed_percentage, expected_responses) en cada objeto check-in. Por defecto: false. |
include_pending_users | boolean | Optional | Si es true y el check-in no es anónimo, incluye pending_users en cada objeto check-in. Por defecto: false. |
curl -X GET "https://api.dailybot.com/v1/checkins/" \
-H "X-API-KEY: tu_api_key"Response 200 OK
{
"count": 5,
"next": "https://api.dailybot.com/v1/checkins/?limit=10&offset=10",
"previous": null,
"results": [
{
"id": "checkin-uuid",
"name": "Daily Standup",
"active": true,
"can_be_edited": true,
"frequency_type": "daily",
"frequency": "every_day",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"is_anonymous": false
}
]
}Obtener Check-in
/v1/checkins/{checkin-uuid}/ Devuelve un check-in por ID (UUID).
curl -X GET "https://api.dailybot.com/v1/checkins/checkin-uuid/" \
-H "X-API-KEY: tu_api_key"Response 200 OK
{
"id": "checkin-uuid",
"name": "Daily Standup",
"active": true,
"can_be_edited": true,
"frequency_type": "daily",
"frequency": "every_day",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"is_anonymous": false,
"template": "template-uuid",
"start_on": null,
"end_on": null,
"time_for_report": "09:00:00",
"owner_uuid": "user-uuid"
}Response 404 Not Found
{
"detail": "Not found.",
"code": "not_found"
}Crear Check-in
/v1/checkins/ Crea un nuevo check-in. Requiere permiso de administrador de organización, gestor de equipos o miembro de la organización.
Parámetros del Cuerpo
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Required | Nombre del check-in. |
template | string (UUID) | Required | ID de plantilla (de GET /v1/templates/). |
members_uuids | array of strings (UUID) | Optional | UUIDs de usuarios a añadir como miembros. |
teams_uuids | array of strings (UUID) | Optional | UUIDs de equipos cuyos miembros se añadirán. |
frequency_type | string | Optional | ej. daily, weekly. |
frequency | string | Optional | ej. every_day, two, four. |
frequency_on_days | array of integers | Optional | Días de la semana (0=Lun … 6=Dom). |
time_for_report | string (time) | Optional | Hora del reporte (HH:MM:SS). |
start_on | string (date) | Optional | Fecha de inicio (YYYY-MM-DD). |
end_on | string (date) | Optional | Fecha de fin (YYYY-MM-DD). |
is_anonymous | boolean | Optional | Por defecto: false. |
privacy | string | Optional | Tipo de privacidad. |
allow_edit_permission | string | Optional | Quién puede editar. |
join_myself_as_member | boolean | Optional | Añadir al solicitante como miembro. Por defecto: false. |
curl -X POST "https://api.dailybot.com/v1/checkins/" \
-H "X-API-KEY: tu_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Daily Standup",
"template": "template-uuid"
}'Response 201 Created
{
"id": "checkin-uuid",
"name": "Daily Standup",
"active": true,
"can_be_edited": true,
"frequency_type": "daily",
"frequency": "every_day",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"is_anonymous": false,
"template": "template-uuid",
"start_on": null,
"end_on": null,
"time_for_report": "09:00:00",
"owner_uuid": "user-uuid"
}Response 400 Bad Request
{
"detail": "Validation error message.",
"code": "params_validation_error"
}Response 403 Forbidden
{
"detail": "You do not have permission to perform this action.",
"code": "permission_denied"
}Actualizar Check-in
/v1/checkins/{checkin-uuid}/ Actualización parcial de un check-in. Requiere permiso de gestión del check-in. Solo se actualizan los campos proporcionados (ej. name, active, frequency_on_days, members_uuids, teams_uuids).
Parámetros del Cuerpo
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Optional | Nombre del check-in. |
template | string (UUID) | Optional | ID de plantilla (de GET /v1/templates/). |
members_uuids | array of strings (UUID) | Optional | UUIDs de usuarios a añadir como miembros. |
teams_uuids | array of strings (UUID) | Optional | UUIDs de equipos cuyos miembros se añadirán. |
frequency_type | string | Optional | ej. daily, weekly. |
frequency | string | Optional | ej. every_day, two, four. |
frequency_on_days | array of integers | Optional | Días de la semana (0=Lun … 6=Dom). |
time_for_report | string (time) | Optional | Hora del reporte (HH:MM:SS). |
start_on | string (date) | Optional | Fecha de inicio (YYYY-MM-DD). |
end_on | string (date) | Optional | Fecha de fin (YYYY-MM-DD). |
is_anonymous | boolean | Optional | Por defecto: false. |
privacy | string | Optional | Tipo de privacidad. |
allow_edit_permission | string | Optional | Quién puede editar. |
join_myself_as_member | boolean | Optional | Añadir al solicitante como miembro. Por defecto: false. |
curl -X PATCH "https://api.dailybot.com/v1/checkins/checkin-uuid/" \
-H "X-API-KEY: tu_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Standup Actualizado"
}'Response 200 OK
{
"id": "checkin-uuid",
"name": "Standup Actualizado",
"active": true,
"can_be_edited": true,
"frequency_type": "daily",
"frequency": "every_day",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"is_anonymous": false,
"template": "template-uuid",
"start_on": null,
"end_on": null,
"time_for_report": "09:00:00",
"owner_uuid": "user-uuid"
}Response 403 Forbidden
{
"detail": "You do not have permission to perform this action.",
"code": "permission_denied"
}Response 404 Not Found
{
"detail": "Not found.",
"code": "not_found"
}Eliminar Check-in
/v1/checkins/{checkin-uuid}/ Archiva el check-in (establece active a false y lo archiva). Requiere permiso de gestión del check-in. Sin cuerpo.
curl -X DELETE "https://api.dailybot.com/v1/checkins/checkin-uuid/" \
-H "X-API-KEY: tu_api_key"Response 204 No Content
Response 403 Forbidden
{
"detail": "You do not have permission to perform this action.",
"code": "permission_denied"
}Response 404 Not Found
{
"detail": "Not found.",
"code": "not_found"
}Acción Irreversible
Listar Respuestas del Check-in
/v1/checkins/{checkin-uuid}/responses/ Devuelve las respuestas de un check-in en un rango de fechas.
Parámetros de Consulta
| Name | Type | Required | Description |
|---|---|---|---|
date_start | string | Optional | Fecha de inicio (YYYY-MM-DD). Por defecto: hoy. |
date_end | string | Optional | Fecha de fin (YYYY-MM-DD). Por defecto: hoy. |
curl -X GET "https://api.dailybot.com/v1/checkins/checkin-uuid/responses/" \
-H "X-API-KEY: tu_api_key"Response 200 OK
[
{
"uuid": "daily-uuid",
"user": {
"uuid": "user-uuid",
"full_name": "María García"
},
"is_anonymous": false,
"responses": [
{
"question": "What did you do?",
"question_short": "Done",
"question_type": "text_field",
"response": "Completé la integración.",
"is_blocker": false
}
],
"response_completed": true,
"has_issue": false,
"created_at": "2026-02-25T10:00:00Z",
"updated_at": "2026-02-25T10:05:00Z"
}
]Enviar Recordatorios
/v1/checkins/{checkin-uuid}/send-reminders/ Envía notificaciones de recordatorio del check-in. Si no se proporcionan users_uuids ni users_emails, se envían recordatorios a todos los usuarios pendientes de responder para hoy (en la zona horaria del check-in).
Parámetros del Cuerpo
| Name | Type | Required | Description |
|---|---|---|---|
users_uuids | array of strings (UUID) | Optional | UUIDs de usuarios a notificar. |
users_emails | array of strings | Optional | Emails de usuarios a notificar (resueltos a UUIDs en la misma org). |
date | string | Optional | Fecha del reporte (YYYY-MM-DD). Si se omite, se usa hoy en la zona horaria del check-in. |
reminder_triggered_by_user | string (UUID) | Optional | UUID del usuario a registrar como remitente. |
is_reminder_triggered_by_me | boolean | Optional | Si es true, usar el usuario autenticado como remitente. Por defecto: false. |
curl -X POST "https://api.dailybot.com/v1/checkins/checkin-uuid/send-reminders/" \
-H "X-API-KEY: tu_api_key" \
-H "Content-Type: application/json" \
-d '{}'Response 200 OK — Usuarios notificados
{
"detail": "Users notified successfully."
}Response 200 OK — Sin usuarios a notificar
{
"detail": "No users to notify."
}Response 400 Bad Request
{
"detail": "Uuid for user that sends reminder is not valid.",
"code": "user_uuid_not_valid"
}Response 404 Not Found
{
"detail": "User that sends reminder does not exists.",
"code": "user_that_sends_does_not_exists"
}Completar Respuestas
/v1/checkins/{checkin-uuid}/responses/ Crea una nueva respuesta de check-in.
Parámetros del Cuerpo
| Name | Type | Required | Description |
|---|---|---|---|
responses | array of objects | Required | Lista de respuestas a las preguntas del check-in. No puede estar vacía. |
response_date | string | Optional | Fecha de la respuesta (YYYY-MM-DD). |
last_question_index | integer | Optional | Índice de la última pregunta respondida. |
inline_chat_update | boolean | Optional | Si es una actualización inline de chat. Por defecto: false. |
curl -X POST "https://api.dailybot.com/v1/checkins/checkin-uuid/responses/" \
-H "X-API-KEY: tu_api_key" \
-H "Content-Type: application/json" \
-d '{
"responses": [
{
"question_uuid": "q-uuid-1",
"response": "Texto de respuesta"
}
]
}'Response 201 Created
{
"uuid": "daily-uuid",
"response_completed": true,
"responses": {
"question-uuid": "Answer text"
},
"next_question_action": {}
}Response 400 Bad Request / 406 Not Acceptable
{
"detail": "Responses not allowed on inactive Follow-Up",
"code": "responses_not_allowed_on_inactive_followup"
}Response 400 Bad Request / 406 Not Acceptable (ejemplo 2)
{
"detail": "User is not a followup member",
"code": "user_is_not_a_followup_member"
}Plantillas y Formularios
Las plantillas definen la estructura y preguntas para check-ins y formularios. Usa estos endpoints para explorar plantillas disponibles y obtener datos de formularios. Las plantillas pueden ser predeterminadas del sistema o creadas por tu organización.
Listar Plantillas
/v1/templates/ Devuelve una lista de plantillas filtradas por tipo.
Parámetros de Consulta
| Name | Type | Required | Description |
|---|---|---|---|
type | string | Required | Tipo de plantilla: checkins (o followups), o forms. |
system_default | boolean | Optional | Si es true, devolver solo plantillas predeterminadas del sistema. Por defecto: false. |
curl -X GET "https://api.dailybot.com/v1/templates/?type=checkins" \
-H "X-API-KEY: tu_api_key"Response 200 OK
[
{
"id": "template-uuid",
"name": "Daily Standup",
"questions": {
"fields": []
},
"intro": null,
"outro": null,
"frequency": "every_day",
"frequency_type": "daily",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"system_default": false
}
]Response 400 Bad Request
{
"detail": "The 'type' param should be: checkins (followups), forms",
"code": "params_validation_error"
}Obtener Plantilla
/v1/templates/{template-id}/ Devuelve una plantilla por ID.
Parámetros de Consulta
| Name | Type | Required | Description |
|---|---|---|---|
render_special_vars | boolean | Optional | Si se deben renderizar variables especiales en la plantilla. Por defecto: false. |
followup_id | string | Optional | Cuando render_special_vars es true, ID de check-in opcional para contexto. |
curl -X GET "https://api.dailybot.com/v1/templates/template-uuid/" \
-H "X-API-KEY: tu_api_key"Response 200 OK
{
"id": "template-uuid",
"name": "Daily Standup",
"questions": {
"fields": []
},
"intro": null,
"outro": null,
"frequency": "every_day",
"frequency_type": "daily",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"system_default": false
}Response 404 Not Found
{
"detail": "Not found.",
"code": "not_found"
}Listar Formularios
/v1/forms/ Devuelve la lista de formularios visibles para el usuario autenticado.
curl -X GET "https://api.dailybot.com/v1/forms/" \
-H "X-API-KEY: tu_api_key"Response 200 OK
[
{
"id": "form-uuid",
"name": "Formulario de feedback",
"is_active": true,
"collect_responses_anonymously": false,
"privacy": "organization",
"shortcut": null,
"start_on": null,
"end_on": null,
"is_archived": false
}
]