Primeros pasos
Regístrese con su cuenta de Google o su correo: su cuenta y su primer espacio de trabajo se crean en el primer inicio de sesión. Un espacio de trabajo contiene sus propios contactos, números, conversaciones y ajustes, por lo que una organización puede gestionar varios espacios aislados.
Antes de enviar nada necesita un número de teléfono y créditos. La prueba incluye mensajes gratuitos para empezar; los planes de pago añaden un cupo mensual de créditos.
- Compre un número en Números de teléfono: busque por país y dígitos y compre. El primer número se convierte en su remitente predeterminado.
- Consulte su saldo de créditos en Facturación. Cada segmento de SMS saliente consume un crédito.
- Para WhatsApp también necesita un remitente de WhatsApp registrado y al menos una plantilla aprobada; vea la sección WhatsApp más abajo.
- Invite a sus colegas en Equipo; vea Equipo y espacios de trabajo para saber cómo funcionan las invitaciones.
Contactos y consentimiento
Los contactos son la base de todo envío. Añádalos uno a uno o importe un CSV con el asistente de importación, que mapea sus columnas, valida los números y omite duplicados.
Los números deben ir en formato internacional (por ejemplo +34612345678). Se aceptan y normalizan espacios, guiones y el 00 inicial; todo lo demás se rechaza en lugar de deformarse en silencio.
- Cada contacto tiene un estado de consentimiento: aceptado, rechazado o desconocido. Las campañas solo llegan a contactos con consentimiento.
- Respuestas como STOP dan de baja al contacto automáticamente; configure las palabras clave y los textos de confirmación en Ajustes → Palabras clave.
- Las etiquetas agrupan contactos para segmentar campañas y difundir turnos. Créelas sobre la marcha al añadir o importar.
- Cada cambio de consentimiento queda registrado en un historial de auditoría que puede presentar cuando se lo pidan; vea Cumplimiento.
Bandeja de entrada
La bandeja muestra todas las conversaciones bidireccionales en un solo lugar: SMS y WhatsApp lado a lado, cada hilo etiquetado con su canal.
Abra una conversación para ver el historial completo y responder directamente. Responder consume créditos como cualquier mensaje saliente.
- Filtre por estado: abierta, pendiente o resuelta.
- Los contadores de no leídos se actualizan en tiempo real al llegar respuestas.
- Responder por WhatsApp fuera de la ventana de sesión de 24 horas requiere una plantilla aprobada; el compositor se lo indicará cuando sea el caso.
Campañas
Las campañas envían un mensaje a muchos contactos: una promoción, un aviso, una felicitación. Diríjase a todos, a etiquetas concretas o a reglas de segmento.
Antes de enviar, el compositor muestra una estimación del coste: cuántos destinatarios, cuántos segmentos y si su saldo alcanza. No se envía nada hasta que confirme.
- Envíe de inmediato o programe; una campaña programada puede reprogramarse o cancelarse hasta que empiece.
- Personalice con variables como el nombre del contacto.
- Siga las estadísticas en vivo durante el envío: enviados, entregados, fallidos y respuestas.
- Las campañas omiten contactos dados de baja o con consentimiento desconocido; no es configurable, por diseño.
Smessa envía WhatsApp a través de su remitente de WhatsApp Business registrado. Con el remitente conectado, WhatsApp aparece junto al SMS en la bandeja, las campañas y los recordatorios.
WhatsApp distingue entre mensajes de sesión y mensajes de plantilla. Cuando un cliente le escribe, se abre una ventana de sesión de 24 horas en la que puede responder libremente. Fuera de esa ventana, los mensajes iniciados por la empresa deben usar una plantilla aprobada por WhatsApp.
- Gestione las plantillas en Plantillas de WhatsApp: créelas por categoría (marketing, utilidad, autenticación) y envíelas a revisión.
- El estado de una plantilla es Pendiente, Aprobada o Rechazada; use Sincronizar para obtener el estado más reciente.
- Las plantillas usan variables numeradas ({{1}}, {{2}}) que se rellenan al enviar.
- Una plantilla rechazada muestra el motivo para revisarla y volver a enviarla.
Recordatorios de citas
ComplementoEl complemento de citas envía recordatorios automáticos que reducen notablemente las ausencias. Cree las citas a mano o sincronícelas desde un calendario externo.
Cada cita tiene un calendario de recordatorios, por ejemplo 24 horas y 1 hora antes del inicio. Los recordatorios salen por SMS, o por WhatsApp con la plantilla elegida.
- Los clientes confirman respondiendo; la confirmación queda registrada en la cita.
- Marque ausencias y citas completadas para un historial fiable.
- También puede lanzar un recordatorio manualmente desde la página de la cita.
Turnos
ComplementoEl complemento de turnos cubre turnos vacantes por SMS o WhatsApp. Cree un turno con horario, lugar y retribución, y difúndalo al personal por etiqueta o individualmente; las difusiones por WhatsApp usan una plantilla aprobada.
La primera persona que responde SÍ se lleva el turno: las respuestas se bloquean por orden de llegada, sin dobles asignaciones. Al resto se le avisa automáticamente de que el turno está cubierto.
- Fije un plazo de respuesta tras el cual la difusión caduca.
- Siga cada respuesta - aceptada, rechazada, caducada - en la página del turno.
- Cancele o cierre turnos para mantener el calendario en orden.
Automatizaciones
ComplementoEl complemento de automatizaciones reacciona a los eventos por usted: un mensaje entrante con cierta palabra clave, un contacto nuevo y más. Cada regla une un disparador con una o varias acciones.
Las acciones incluyen enviar una respuesta, etiquetar al contacto y llamar a su propio webhook. Cada regla muestra su historial de ejecución con aciertos y fallos.
- Las reglas se activan y desactivan sin borrarlas.
- La acción webhook hace un POST JSON a su URL con cabeceras personalizadas opcionales y 10 segundos de tiempo límite. De momento no hay reintentos ni firma: trate ese endpoint como una notificación best-effort, no como fuente de verdad.
- El registro de ejecución guarda el detalle de cada ejecución para depurar.
Códigos de un solo uso (OTP)
ComplementoEl complemento OTP permite que su propia aplicación envíe códigos de verificación por SMS o WhatsApp con dos llamadas API sencillas: una para enviar el código y otra para verificar lo que escribió el usuario. La entrega por WhatsApp usa una plantilla de autenticación aprobada.
Los códigos caducan tras un número configurable de minutos y son de un solo uso. Vea la referencia de la API para el formato de las peticiones.
- Personalice la plantilla del mensaje y la longitud del código en cada petición.
- La verificación devuelve un verified verdadero/falso claro; no necesita almacenar códigos.
Equipo y espacios de trabajo
Invite a colegas a su espacio de trabajo en Equipo. Hay tres roles: propietario (control total), administrador (todo salvo la propiedad) y miembro.
Las invitaciones funcionan sin correo: cree una invitación para la dirección de un colega y, en cuanto inicie sesión en Smessa con esa dirección, se unirá al espacio automáticamente. Las invitaciones caducan a los 7 días y pueden renovarse.
- Administradores y propietarios gestionan roles, retiran miembros y gestionan invitaciones.
- El propietario no puede ser degradado ni eliminado.
- Cambie entre espacios desde el selector de espacio de trabajo.
Facturación y créditos
Los planes incluyen un cupo mensual de créditos; un crédito cubre un segmento de SMS. Al agotarse, el envío se detiene salvo que permita excedentes o compre un paquete de recarga.
El pago se realiza a través de nuestro socio de pagos; facturas y métodos de pago se gestionan en el portal del cliente, a un clic desde Facturación.
- Los paquetes de créditos son compras únicas que se suman a su cupo mensual.
- Los complementos (citas, turnos, automatizaciones, OTP) son suscripciones aparte que se activan por organización.
- El consumo y el historial de transacciones están siempre visibles en Facturación.
Cumplimiento y RGPD
Smessa está construido para enviar con consentimiento. Las bajas se aplican automáticamente, cada cambio de consentimiento se registra con fecha y motivo, y las campañas nunca ignoran el consentimiento.
Para solicitudes RGPD, las herramientas de cumplimiento exportan o borran todo lo almacenado sobre un número: ficha de contacto, mensajes e historial de consentimiento.
- La exportación produce un archivo legible por máquina, apto para solicitudes de acceso.
- El borrado es irreversible y queda registrado; elimina el contacto, sus mensajes y su rastro de consentimiento.
- Configure palabras clave de baja, alta e información con confirmaciones automáticas en Ajustes → Palabras clave.
Referencia de la API
Todo lo que hace el panel está disponible mediante una API REST JSON. Autentíquese con una clave API del espacio de trabajo e integre envíos, contactos, campañas y más en sus propios sistemas.
La URL base es su host de API; todos los endpoints siguientes son relativos a ella.
Autenticación
Cree una clave API en Ajustes → Claves API. La clave completa (con prefijo sf_) se muestra una sola vez al crearla: guárdela en un gestor de secretos.
Envíe la clave como token bearer en cada petición. La clave está ligada al espacio de trabajo donde se creó, así que no hace falta cabecera de espacio; si envía X-Workspace-Id, debe coincidir con el espacio de la clave.
Las claves dan acceso completo a su espacio y siguen funcionando aunque su creador deje el espacio: revoque las claves en Ajustes al dar de baja a alguien o al rotar credenciales.
curl https://api.smessa.com/api/v1/contacts \
-H "Authorization: Bearer sf_your_api_key"Convenciones
- Los cuerpos de petición y respuesta son JSON con nombres de campo en snake_case.
- Las marcas de tiempo son ISO 8601 en UTC.
- Los números de teléfono usan el formato internacional E.164 (+34612345678).
- Los listados se paginan con los parámetros page y limit y devuelven el sobre que se muestra abajo.
{
"data": [ ... ],
"pagination": { "page": 1, "limit": 50, "total": 132, "pages": 3 }
}Errores
- Los errores devuelven un cuerpo JSON con un campo detail; los errores de validación (422) devuelven un array detail con mensajes por campo.
- 401 - clave API ausente, inválida o revocada.
- 402 - créditos insuficientes o suscripción inactiva, con cuerpo objeto: {"error": "insufficient_credits", "message": "..."}.
- 403 - X-Workspace-Id no coincide, o {"error": "feature_not_available"} cuando el endpoint requiere un complemento no contratado.
- 404 - recurso no encontrado en este espacio de trabajo.
Endpoints
Mensajes
| POST | /api/v1/messages | Enviar un mensaje SMS o WhatsApp |
| GET | /api/v1/messages/{id} | Obtener un mensaje y su estado de entrega |
OTP
| POST | /api/v1/otp/send | Enviar un código de verificación |
| POST | /api/v1/otp/verify | Verificar un código introducido por el usuario |
Contactos
| GET | /api/v1/contacts | Listar contactos (búsqueda, filtros de consentimiento y etiqueta) |
| POST | /api/v1/contacts | Crear un contacto |
| POST | /api/v1/contacts/import | Importar contactos en bloque |
| GET | /api/v1/contacts/tags | Listar las etiquetas del espacio |
| GET | /api/v1/contacts/{id} | Obtener un contacto |
| PUT | /api/v1/contacts/{id} | Actualizar un contacto |
| DELETE | /api/v1/contacts/{id} | Eliminar un contacto |
| PUT | /api/v1/contacts/{id}/consent | Actualizar el consentimiento |
| GET | /api/v1/contacts/{id}/messages | Historial de mensajes con este contacto |
Conversaciones
| GET | /api/v1/conversations | Listar conversaciones (vista de bandeja) |
| GET | /api/v1/conversations/{id} | Obtener una conversación con sus mensajes |
| PUT | /api/v1/conversations/{id} | Actualizar estado o asignación |
| POST | /api/v1/conversations/{id}/messages | Responder en una conversación |
Campañas
| GET | /api/v1/campaigns | Listar campañas |
| POST | /api/v1/campaigns | Crear una campaña |
| GET | /api/v1/campaigns/{id} | Obtener una campaña con estadísticas en vivo |
| GET | /api/v1/campaigns/{id}/estimate | Estimar destinatarios y coste |
| POST | /api/v1/campaigns/{id}/schedule | Programar una campaña |
| POST | /api/v1/campaigns/{id}/send | Enviar una campaña ahora |
| POST | /api/v1/campaigns/{id}/cancel | Cancelar una campaña |
Números de teléfono
| GET | /api/v1/phone-numbers | Listar sus números |
| GET | /api/v1/phone-numbers/available | Buscar números disponibles para comprar |
| POST | /api/v1/phone-numbers | Comprar un número |
| PUT | /api/v1/phone-numbers/{id} | Renombrar o marcar como predeterminado |
| GET | /api/v1/phone-numbers/{id}/stats | Estadísticas de uso de un número |
| DELETE | /api/v1/phone-numbers/{id} | Liberar un número |
| GET | /api/v1/whatsapp/senders | Listar remitentes registrados |
| GET | /api/v1/whatsapp/templates | Listar plantillas de mensaje |
| POST | /api/v1/whatsapp/templates | Crear una plantilla para revisión |
| POST | /api/v1/whatsapp/templates/sync | Sincronizar el estado de revisión de las plantillas |
Citas (complemento)
| GET | /api/v1/appointments | Listar citas |
| POST | /api/v1/appointments | Crear una cita con calendario de recordatorios |
| PUT | /api/v1/appointments/{id} | Actualizar una cita |
| POST | /api/v1/appointments/{id}/cancel | Cancelar una cita |
| POST | /api/v1/appointments/{id}/remind | Enviar un recordatorio ahora |
Turnos (complemento)
| GET | /api/v1/shifts | Listar turnos |
| POST | /api/v1/shifts | Crear un turno |
| POST | /api/v1/shifts/{id}/broadcast | Difundir un turno al personal |
| GET | /api/v1/shifts/{id}/responses | Listar respuestas |
| POST | /api/v1/shifts/{id}/cancel | Cancelar un turno |
Automatizaciones (complemento)
| GET | /api/v1/automation | Listar reglas |
| POST | /api/v1/automation | Crear una regla |
| PUT | /api/v1/automation/{id} | Actualizar una regla |
| POST | /api/v1/automation/{id}/toggle | Activar o desactivar una regla |
| GET | /api/v1/automation/{id}/logs | Registro de ejecución de una regla |
Analítica
| GET | /api/v1/analytics/overview | Estadísticas del panel |
| GET | /api/v1/analytics/messaging | Analítica de mensajería por período |
Ejemplos
Enviar un SMS
curl -X POST https://api.smessa.com/api/v1/messages \
-H "Authorization: Bearer sf_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"to": "+46701234567",
"body": "Your appointment is tomorrow at 14:00."
}'Listar contactos
curl "https://api.smessa.com/api/v1/contacts?page=1&limit=50" \
-H "Authorization: Bearer sf_your_api_key"Enviar un código de un solo uso
curl -X POST https://api.smessa.com/api/v1/otp/send \
-H "Authorization: Bearer sf_your_api_key" \
-H "Content-Type: application/json" \
-d '{"phone_number": "+46701234567"}'Limitaciones actuales
- Las claves API no tienen scopes: cada clave tiene acceso completo a su espacio de trabajo. Cree espacios separados si necesita aislamiento.
- Aún no hay límite de peticiones: sea prudente con el polling y use la paginación.
- Aún no hay webhooks de eventos salientes; consulte el estado de los mensajes o use la acción webhook de las automatizaciones.