Skip to content

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

GET /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.
Petición
curl -X GET "https://api.dailybot.com/v1/checkins/" \
  -H "X-API-KEY: tu_api_key"
Response 200 OK
json
{
  "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

GET /v1/checkins/{checkin-uuid}/

Devuelve un check-in por ID (UUID).

Petición
curl -X GET "https://api.dailybot.com/v1/checkins/checkin-uuid/" \
  -H "X-API-KEY: tu_api_key"
Response 200 OK
json
{
  "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
json
{
  "detail": "Not found.",
  "code": "not_found"
}

Crear Check-in

POST /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.
Petición
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
json
{
  "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
json
{
  "detail": "Validation error message.",
  "code": "params_validation_error"
}
Response 403 Forbidden
json
{
  "detail": "You do not have permission to perform this action.",
  "code": "permission_denied"
}

Actualizar Check-in

PATCH /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.
Petición
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
json
{
  "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
json
{
  "detail": "You do not have permission to perform this action.",
  "code": "permission_denied"
}
Response 404 Not Found
json
{
  "detail": "Not found.",
  "code": "not_found"
}

Eliminar Check-in

DELETE /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.

Petición
curl -X DELETE "https://api.dailybot.com/v1/checkins/checkin-uuid/" \
  -H "X-API-KEY: tu_api_key"
Response 204 No Content
json
Response 403 Forbidden
json
{
  "detail": "You do not have permission to perform this action.",
  "code": "permission_denied"
}
Response 404 Not Found
json
{
  "detail": "Not found.",
  "code": "not_found"
}

Acción Irreversible

Eliminar un check-in remueve permanentemente todas sus respuestas y configuración. Esta acción no se puede deshacer.

Listar Respuestas del Check-in

GET /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.
Petición
curl -X GET "https://api.dailybot.com/v1/checkins/checkin-uuid/responses/" \
  -H "X-API-KEY: tu_api_key"
Response 200 OK
json
[
  {
    "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

POST /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.
Petición
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
json
{
  "detail": "Users notified successfully."
}
Response 200 OK — Sin usuarios a notificar
json
{
  "detail": "No users to notify."
}
Response 400 Bad Request
json
{
  "detail": "Uuid for user that sends reminder is not valid.",
  "code": "user_uuid_not_valid"
}
Response 404 Not Found
json
{
  "detail": "User that sends reminder does not exists.",
  "code": "user_that_sends_does_not_exists"
}

Completar Respuestas

POST /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.
Petición
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
json
{
  "uuid": "daily-uuid",
  "response_completed": true,
  "responses": {
    "question-uuid": "Answer text"
  },
  "next_question_action": {}
}
Response 400 Bad Request / 406 Not Acceptable
json
{
  "detail": "Responses not allowed on inactive Follow-Up",
  "code": "responses_not_allowed_on_inactive_followup"
}
Response 400 Bad Request / 406 Not Acceptable (ejemplo 2)
json
{
  "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

GET /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.
Petición
curl -X GET "https://api.dailybot.com/v1/templates/?type=checkins" \
  -H "X-API-KEY: tu_api_key"
Response 200 OK
json
[
  {
    "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
json
{
  "detail": "The 'type' param should be: checkins (followups), forms",
  "code": "params_validation_error"
}

Obtener Plantilla

GET /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.
Petición
curl -X GET "https://api.dailybot.com/v1/templates/template-uuid/" \
  -H "X-API-KEY: tu_api_key"
Response 200 OK
json
{
  "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
json
{
  "detail": "Not found.",
  "code": "not_found"
}

Listar Formularios

GET /v1/forms/

Devuelve la lista de formularios visibles para el usuario autenticado.

Petición
curl -X GET "https://api.dailybot.com/v1/forms/" \
  -H "X-API-KEY: tu_api_key"
Response 200 OK
json
[
  {
    "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
  }
]