Convierte un botón de chat en un formulario de registro de incidentes
Sáltate la pestaña de la herramienta de incidentes dedicada: un botón Reportar incidente abre un modal corto directo en el chat, y las respuestas llegan a donde las enrutes.
Los incidentes no esperan a que alguien abra la herramienta de guardia. Un botón Reportar incidente recolecta exactamente lo que la respuesta necesita — severidad, servicio, un resumen de una línea — en un modal que se abre justo donde se notó el incidente por primera vez, y luego reenvía las respuestas a donde viva tu proceso de incidentes.
Esta página cubre el contrato del modal (modal_body, sus blocks, la marca required en cada campo) y los dos lugares a donde puedes enrutar el envío: tu propio callback_url, o directo a un workflow api_trigger vía callback_workflow.
Constrúyelo paso a paso
Agrega un botón Reportar incidente
Adjunta modal_body a un botón interactivo. En Slack el modal se renderiza de forma nativa; en Microsoft Teams, Discord y Google Chat, Dailybot recolecta los mismos campos de forma conversacional en su lugar.
Diseña los campos del modal
modal_body es { title, submit_label?, blocks[] } — de 1 a 10 bloques de tipo text, input o divider, con un tamaño serializado menor a 8 KiB. Cada bloque input necesita un name que coincida con ^[a-z][a-z0-9_]{0,62}$ y sea único dentro del modal, más un label; márcalo required para exigir que se complete.
Enruta las respuestas
Los valores enviados llegan como modal_fields.<name> en el callback que lleve el botón — callback_url para tu propio servidor de gestión de incidentes, o callback_workflow para entregar el incidente directamente a un workflow api_trigger. Solo uno de los dos, igual que en cualquier otro botón.
Confirma la recepción
Agrega una auto-respuesta response para que quien reporta vea la confirmación de inmediato — "Incidente registrado, on-call notificado" — sin esperar a que el sistema que recibe el callback responda.
Cómo fluye
Un diagrama estático — nada aquí es interactivo o en vivo.
¿Algo se rompió? Repórtalo aquí.
Ilustrativo — respuestas reenviadas
{
"button_id": "[button-id]",
"modal_fields": {
"severity": "sev2",
"service": "checkout-api",
"summary": "Elevated 500s on checkout"
}
}Solo ilustrativo — se reenvía a callback_url o callback_workflow según cómo esté configurado el botón. Consulta la referencia de la API send-message para el contrato completo.
Recetas para copiar y pegar
curl -sS -X POST 'https://api.dailybot.com/v1/send-message/' \
-H 'X-API-KEY: $DAILYBOT_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"message":"¿Algo se rompió? Repórtalo aquí.","target_channels":["C0123456789"],"buttons":[{"label":"Reportar incidente","button_type":"interactive","value":"report_incident","callback_url":"https://ops.example.com/hooks/incident","callback_auth":{"type":"bearer","token":"$INCIDENT_CALLBACK_TOKEN"},"modal_body":{"title":"Reportar un incidente","submit_label":"Enviar","blocks":[{"type":"input","name":"severity","label":"Severidad (sev1-sev4)","required":true},{"type":"input","name":"service","label":"Servicio afectado","required":true},{"type":"input","name":"summary","label":"Resumen","multiline":true,"required":true}]},"response":{"message":"Incidente registrado, on-call notificado."}}]}'
dailybot chat send -c C0123456789 -m "¿Algo se rompió? Repórtalo aquí." \
--buttons '[{"label":"Reportar incidente","button_type":"interactive","value":"report_incident",
"callback_workflow":"$INCIDENT_WORKFLOW_UUID",
"modal_body":{"title":"Reportar un incidente","submit_label":"Enviar",
"blocks":[{"type":"input","name":"severity","label":"Severidad (sev1-sev4)","required":true},
{"type":"input","name":"service","label":"Servicio afectado","required":true},
{"type":"input","name":"summary","label":"Resumen","multiline":true,"required":true}]}}]'
Publica un mensaje en #incidents con un botón Reportar incidente que
abra un modal pidiendo severidad, servicio afectado y un resumen, y
luego reenvíe las respuestas a https://ops.example.com/hooks/incident.
¿Listo para transformar cómo trabaja tu equipo?
Únete a miles de equipos que usan Dailybot para ahorrar tiempo, impulsar el engagement y tomar mejores decisiones.