¡Guau! Crea tu integración de WhatsApp. Empieza gratis. Regístrate ahora
Briefing del personal escolar · Caso de uso de la WhatsApp API

Resumen diario del LMS para el personal en WhatsApp tras la jornada escolar

Un responsable del personal puede leer el panorama operativo del día en WhatsApp sin abrir el LMS. Después del horario escolar, tu planificador puede consultar la base de datos, componer un texto corto y enviarlo a través de Whapi.Cloud. Este caso de uso muestra a los integradores cómo implementar ese flujo con la WhatsApp API.

Solo texto, sin gráficos ni PDF Un chat personal del personal
Panel de operaciones escolares junto a un teléfono cuyo chat de WhatsApp muestra un breve resumen nocturno para el personal tras la jornada escolar.
Caso de uso

Cuándo usar este flujo

El disparador es un horario diario tras la jornada

Usa este flujo cuando una tarea programada diaria corre después del horario escolar, no en cada cambio de fila del LMS en tiempo real.

El resumen sale de datos del LMS o de la base de datos

Usa este flujo cuando own_backend consulta el LMS o la base de datos y compone conteos o alertas, no cuando solo lees el historial de mensajes de WhatsApp.

Un responsable del personal en un chat personal

Usa este flujo cuando un empleado responsable debe recibir el brief en un chat personal, no cuando los profesores comparten una lista en un grupo.

Chat de WhatsApp en un teléfono con un breve resumen nocturno para el personal tras la jornada escolar.
Experiencia del cliente

El personal ve el día en el chat

Las señales operativas del día se quedan dentro del LMS hasta que alguien abre los paneles, y la dirección se entera tarde de los huecos o el retraso.

Cuando el flujo corre, el responsable abre WhatsApp y lee un resumen corto del panorama operativo del día. Los integradores construyen este resultado con la WhatsApp API.

Flujo

Envía el brief nocturno al chat

1

El planificador diario corre tras la jornada

Tu planificador se dispara después del horario escolar. Un worker consulta el LMS o la base de datos y compone el texto de ese día.

2

Envía el brief de texto al personal

POST /messages/text

sendMessageText entrega el resumen compuesto al responsable del personal. Pon el teléfono del personal en to y el resumen en body.

¿Necesitas el seguimiento de entrega? Una respuesta correcta de la API no significa que el responsable ya tenga el brief. Más sobre el estado de entrega →

Requisitos previos

Antes de ejecutar el flujo

Conecta el número de WhatsApp que envía el brief nocturno y autentica cada petición con el token de ese número. La consulta al LMS, el horario y la composición del texto se quedan en tu backend.

Opcional — profundiza en este flujo

Implementación de API

Una llamada envía el brief

Esta llamada es el check-in. Pone el resumen del LMS compuesto en el chat personal del responsable del personal esa noche.

Obtén tu token de API gratis después de registrarte en whapi.cloud y usa ese token en el código en lugar de Your_Token de los ejemplos.

Envía el brief de texto al personal

Envía el brief operativo nocturno al responsable del personal para que la dirección vea el panorama del día sin abrir el LMS.

curl --request POST \
     --url https://gate.whapi.cloud/messages/text \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Your_Token' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "447123456789",
  "body": "Today: 12 absences, 3 late arrivals, 2 open tickets."
}
'
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/text",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"to\":\"447123456789\",\"body\":\"Today: 12 absences, 3 late arrivals, 2 open tickets.\"}",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer Your_Token",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests

url = "https://gate.whapi.cloud/messages/text"
payload = {
    "to": "447123456789",
    "body": "Today: 12 absences, 3 late arrivals, 2 open tickets."
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer Your_Token",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
const response = await fetch('https://gate.whapi.cloud/messages/text', {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer Your_Token',
    'content-type': 'application/json',
  },
  body: JSON.stringify({
    to: '447123456789',
    body: 'Today: 12 absences, 3 late arrivals, 2 open tickets.',
  }),
});

console.log(await response.text());
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"to\":\"447123456789\",\"body\":\"Today: 12 absences, 3 late arrivals, 2 open tickets.\"}");
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/text")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer Your_Token")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/text");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
request.AddHeader("content-type", "application/json");
request.AddJsonBody(new { to = "447123456789", body = "Today: 12 absences, 3 late arrivals, 2 open tickets." });
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	body := []byte(`{"to":"447123456789","body":"Today: 12 absences, 3 late arrivals, 2 open tickets."}`)
	req, _ := http.NewRequest("POST", "https://gate.whapi.cloud/messages/text", bytes.NewReader(body))
	req.Header.Set("accept", "application/json")
	req.Header.Set("authorization", "Bearer Your_Token")
	req.Header.Set("content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
Entrega

Sabe cuándo el brief llegó

Una respuesta de envío correcta no significa que el responsable ya tenga el brief. El primer estado visible antes de un webhook es pending. Los cambios posteriores llegan solo en statuses.post y statuses.put. Si el estado se queda en pending y no pasa a sent, delivered o un acuse posterior, el mensaje no se entregó. Revisa el payload y el permiso de la cuenta para enviar ese tipo.

  • Una respuesta de sendMessageText no prueba que el responsable tenga el brief.

  • Un pending que no avanza significa que el brief no se entregó.

  • Observa statuses.post y statuses.put para los acuses posteriores.

  • Activa webhooks si tu worker debe reintentar cuando la entrega no se completa.

Qué leer sobre entrega y webhooks

Contacta con soporte si algo salió mal
Cuando algo falla

Trata los fallos en cada paso

Si la consulta al LMS falla, el worker se salta el envío o el texto no se entrega, reintenta la tarea o avisa al personal de apoyo y no marques el check-in como completo.

¿El planificador corrió, pero el check-in falló?

La consulta al LMS puede fallar antes de cualquier envío, o sendMessageText puede ser rechazado o no entregarse después de que el resumen ya estaba listo. Reintenta la tarea del worker o avisa al personal de apoyo, y no marques el check-in como completo. Si el check-in nocturno sigue fallando tras un reintento, contacta con el soporte de Whapi con el id del canal y la respuesta de envío fallida.

Contacta con soporte si algo salió mal

Diagnostica por paso de API

Estado Qué significa Qué hacer
400 Wrong request parameters Parámetros de petición incorrectos — revisa to y body en el payload de envío.
401 Need channel authorization for send message
402 Trial version limit exceeded
403 It is forbidden to send to this group/recipient Está prohibido enviar a este destinatario — confirma el teléfono o chat id del personal y los permisos del canal.
429 Too many requests
500 Internal Error
Preguntas frecuentes

Preguntas de integradores

No. Este flujo envía un brief de texto nocturno a un responsable del personal. Los gráficos, los PDF y los chequeos de alcance a padres pertenecen a un flujo multiformato separado para padres.
No. Este flujo apunta a un chat personal del personal. Las alertas de coordinación de grupo usan un JID de grupo de profesores y son un escenario separado.
Si la consulta al LMS falla, el worker se salta el envío o el texto no se entrega, reintenta la tarea o avisa al personal de apoyo y no marques el check-in como completo.
No. Compones texto propio con tus datos del LMS y lo envías con sendMessageText. El envío no espera una plantilla preaprobada y no añade un cargo por plantilla a ese mensaje.
En tu backend. El paso de Whapi del catálogo es solo sendMessageText. La programación, los workers de Redis o Celery y las consultas a la base de datos se quedan en own_backend.
Funciones compatibles de WhatsApp

Todo lo que necesitas para crear automatizaciones en WhatsApp

Whapi.Cloud te da acceso a un conjunto completo de funciones de WhatsApp — mensajería, multimedia, grupos, canales, webhooks y más. Crea bots, automatizaciones e integraciones sin limitaciones de funciones.

Elegido por desarrolladores

Confiado por más de 3.300 desarrolladores y equipos SaaS

Desarrolladores de todo el mundo confían en Whapi.Cloud para crear automatizaciones, bots, integraciones con CRM, herramientas de mensajería masiva y flujos avanzados de WhatsApp. Nuestra infraestructura procesa millones de solicitudes API con alta estabilidad, y este número crece cada mes.

Icono de característica

5,5K+

canales API activos

Icono de característica

21M+

solicitudes API al mes

“Todo es simple, intuitivo y fácil de usar. La documentación es clara y toda la información está justo donde la necesito. Excelente trabajo.”

Roberto K. / Desarrollador Web

“Conectamos WhatsApp a nuestros flujos en n8n en solo unos minutos. Sin código, sin complicaciones — todo funcionó a la primera.”

Martin P. / Desarrollador

“Whapi.Cloud se convirtió en una parte clave de nuestra comunicación con clientes. Automatizamos actualizaciones de productos, notificaciones de pedidos y mensajes de soporte — sin plantillas ni aprobaciones de Meta.”

Oscar T. / CTO

Burbuja decorativa