Enviar un mensaje a Slack
El webhook nativo de Slack funciona bien hasta que necesita reintentos, bloques con formato o una tarea rastreable como cualquier otra en su operación. Este endpoint publica un mensaje formateado en un canal y le entrega un task_id para seguirlo, igual que cualquier otra tarea de la plataforma.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Para equipos que viven más en Slack que en el correo
Mucha señal operativa — un despliegue terminado, un lead nuevo, un umbral de error superado — es más útil como mensaje de Slack que como correo, porque alguien está mirando el canal en tiempo real. notify.slack existe para que los sistemas de backend publiquen ahí directamente, con la misma confiabilidad y trazabilidad que esperaría de una API de pago y no de una URL de webhook entrante pegada a mano en un script.
Qué envía realmente la llamada
POST /notify/slack acepta un canal o referencia de webhook destino, un texto de respaldo, y opcionalmente la estructura block-kit de Slack para formato enriquecido — encabezados, campos, botones donde su workspace lo permite, y menciones @ para las personas que necesitan verlo de inmediato. Nosotros nos encargamos de la entrega y la lógica de reintento; usted solo define el mensaje una vez y el endpoint se encarga de que llegue.
Bloques en vez de texto plano, y por qué importa
Slack pasó de mensajes de solo texto al formato block-kit precisamente porque las alertas operativas y las actualizaciones estructuradas se leen mejor en secciones que como un bloque de texto corrido, un patrón ya tan común que la mayoría de las herramientas de monitoreo e integración continua lo usan por defecto. Soportar block-kit de forma nativa significa que una notificación de despliegue puede mostrar ambiente, commit y estado como campos separados en vez de una sola frase que alguien tiene que interpretar.
Dónde se conecta con su automatización
Como la entrega es asíncrona, dispara la llamada desde un paso de su pipeline, un agente de monitoreo o un manejador de webhooks, y sigue sin esperar el tiempo de respuesta de Slack. Encaja de forma natural con un enrutamiento de alertas previo: decide ahí si un evento merece Slack, correo, Discord o los tres, y deja que este endpoint se encargue específicamente del tramo de Slack.
Confirmación sin adivinar
Recibe de vuelta si la publicación tuvo éxito, incluyendo la marca de tiempo propia del mensaje en Slack para hacer referencia cruzada, mediante un webhook firmado o un enlace firmado válido por 24 horas. Si el canal es incorrecto, el token expiró o el workspace rechaza el mensaje, ese detalle vuelve con claridad en vez de perderse en silencio.
Qué puede hacer con ella
Estado de despliegues y CI
Un pipeline de compilación publica el estado de éxito o falla con campos de commit y ambiente en el canal #deploys del equipo en cuanto termina la ejecución.
Alertas de leads de ventas
Un envío de formulario de alto valor dispara un mensaje formateado en Slack al canal de ventas con los datos del lead y un enlace directo para dar seguimiento.
Escalamiento de incidentes
Un chequeo de monitoreo que cruza un umbral publica en el canal de guardia con una mención @ para que el ingeniero correcto lo vea de inmediato.
Feed de actividad de clientes
Eventos clave de cuentas, como una mejora de plan o una escalación de soporte, se publican en un canal interno de Slack para que los gerentes de cuenta estén al día sin necesidad de un dashboard.
Preguntas frecuentes
¿Cómo publico en un canal específico de Slack con esta api de notificaciones a Slack?
Indica el canal o la referencia de webhook en el cuerpo de la solicitud POST /notify/slack, y el mensaje se entrega ahí con el formato que hayas definido.
¿La API de notificaciones a Slack soporta el formato block-kit?
Sí, puede enviar estructuras block-kit para diseños enriquecidos con campos y encabezados, junto a un texto plano de respaldo para notificaciones y clientes que no lo soporten.
¿notify.slack es gratis?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cuál es el precio por mensaje enviado a Slack?
Son 0.002 dólares por cada solicitud POST /notify/slack, y una publicación fallida — tras tres reintentos automáticos — nunca se cobra.
¿Puedo mencionar a personas o roles específicos en el mensaje?
Sí, la sintaxis estándar de menciones de Slack funciona dentro del contenido del mensaje, así que puede mencionar a una persona, un grupo, o usar here/channel donde la política de su workspace lo permita.
¿Qué pasa si Slack rechaza el mensaje?
Recibe un error claro con el detalle de la respuesta de Slack — un canal inválido o un token expirado, por ejemplo — en vez de que el mensaje simplemente no aparezca.
¿Puedo enviar la misma alerta a Slack y a otros canales a la vez?
Sí, puede llamar a notify.slack junto con notify.discord o notify.webhook para el mismo evento; cada uno se rastrea de forma independiente con su propio task_id.
¿Se guarda el contenido del mensaje después de enviado?
No, los payloads de los mensajes se eliminan tras el período de retención indicado y nunca se usan para entrenar modelos.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/notify/slack \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/notify/slack", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/notify/slack",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/notify/slack", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/notify/slack", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"input": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "notify.slack",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |