Puedes enviar un SMS desde n8n en menos de 5 minutos con el nodo HTTP Request, sin necesidad de un nodo dedicado ni de escribir código. Esa es la respuesta corta. El resto de este artículo es la guía paso a paso, con la configuración exacta que necesitas copiar.
Qué vas a necesitar
- Una cuenta en avisiasms (10 SMS de regalo, sin tarjeta) con tu clave de API, visible en "Mi perfil" del panel.
- Un alias de remitente aprobado (o un remitente numérico mientras se tramita, ver registro de alias CNMC).
- Una instancia de n8n, propia o en la nube.
Paso 1: añade un nodo HTTP Request
En tu flujo de n8n, añade un nodo HTTP Request donde quieras disparar el SMS (por ejemplo, después de que se cree un evento en tu calendario, o tras un webhook de tu CRM).
Paso 2: configura la petición
- Method:
POST - URL:
https://avisiasms.com/api/v1/messages - Authentication: Generic Credential Type → Header Auth
- Name:
Authorization - Value:
Bearer TU_CLAVE_DE_API
- Name:
- Body Content Type: JSON
- Body:
{
"to": "{{$json.telefono}}",
"body": "Hola {{$json.nombre}}, te recordamos tu cita el {{$json.fecha}} a las {{$json.hora}}.",
"sender": "TUALIAS",
"reference": "{{$json.idCita}}"
}
Sustituye {{$json.telefono}}, {{$json.nombre}}, etc. por los campos reales que traiga tu flujo desde el nodo anterior (un Google Sheets, un webhook, un CRM).
Paso 3: revisa la respuesta
Si todo va bien, la API responde 202 Accepted con algo como:
{
"id": "msg_01HQ8Z...",
"status": "queued",
"segments": 1,
"cost": 0.056,
"balanceAfter": 12.94,
"reference": "cita-8891"
}
Puedes usar $json.balanceAfter en un nodo posterior para, por ejemplo, avisarte por email cuando el saldo baje de un umbral, o $json.segments para llevar un control de coste dentro del propio flujo.
Errores más comunes al montar esto
- 401
invalid_api_key: revisa que el header se llame exactamenteAuthorizationy el valor empiece porBearer(con espacio). - 422
sender_not_approved: el alias que pusiste ensenderno está aprobado todavía. Usa un remitente numérico mientras se tramita. - 422
invalid_phone_number: el número tiene que ir en formato E.164 (+34600111222), no con espacios ni el0inicial.
Envío masivo desde una lista
Si en vez de un solo SMS quieres recorrer una lista (por ejemplo, todas las citas de mañana desde un Google Sheets), añade un nodo Split In Batches antes del HTTP Request para no disparar cientos de peticiones simultáneas de golpe, y deja que n8n las vaya procesando una a una.
Siguiente paso
Si tu flujo es más complejo (confirmaciones, reintentos, lógica condicional según el estado de la cita), esta misma base de HTTP Request es el punto de partida: todo lo demás es lógica de n8n encima, no algo específico de nuestra API. Prueba gratis para conseguir tu clave y probarlo con tus propios datos.