Requisitos
- WordPress 5.8 o superior.
- PHP 7.4 o superior.
- Una instalación de Plenario v14 con la API habilitada y accesible por HTTPS desde el servidor donde corre WordPress.
- Un usuario del sistema con permiso para dar de alta prospectos. Conviene crear uno dedicado al sitio web, así en el ERP se distingue lo que entra por la página.
- Uno de estos plugins de formularios: Contact Form 7, WPForms, Elementor Pro Forms o Gravity Forms.
El servidor de WordPress tiene que poder salir hacia la API de Plenario. Si el ERP está en una red interna sin exposición a internet, el plugin no va a poder llegar: hay que publicar la API o poner el sitio dentro de la misma red.
Instalación
-
Descargá el plugin
Bajá
plenario-wp-latest.zipdesde el botón de arriba. No lo descomprimas. -
Subilo a WordPress
En el panel, entrá a
Plugins → Añadir nuevo → Subir plugin, elegí el ZIP y confirmá. - Activalo Al activarse crea su tabla de envíos y programa la tarea de reintentos. Vas a ver un menú nuevo, Plenario, en la barra lateral.
- Configurá la conexión Seguí con el paso siguiente. Hasta que la conexión no esté configurada, el plugin no envía nada.
Conectar con Plenario
Entrá a Plenario → Conexión y completá:
| Campo | Qué va |
|---|---|
| Host de la API | La dirección base, por ejemplo https://api.tuempresa.com.ar. Sin /PlenarioServices.svc ni barra final: eso lo agrega el plugin. |
| Usuario del ERP | El usuario de Plenario con el que se van a dar de alta los prospectos. |
| Contraseña | Se guarda cifrada. Si dejás el campo vacío al volver a guardar, se conserva la anterior. |
| Duración del token | Cada cuánto se renueva la sesión contra el ERP. Por defecto 900 segundos (15 minutos); el rango válido va de 60 a 3600. Si el token vence antes, el plugin lo renueva solo. |
| Certificado | Dejalo destildado. Marcalo sólo si el servidor del ERP usa un certificado propio y la conexión falla por eso. |
| Al desinstalar | Si lo tildás, al borrar el plugin se van también la cola y la configuración. Destildado, los datos sobreviven. |
Probar conexión
El botón Probar conexión no se limita a hacer login: consulta cada endpoint que el plugin necesita y muestra un semáforo. Cada instalación de Plenario corre en el servidor de su cliente, así que puede tener una versión sin alguno de ellos: mejor enterarse acá que perdiendo un contacto.
| Fila | Qué verifica |
|---|---|
| Login | Que el usuario y la contraseña sean correctos. Muestra el token obtenido, enmascarado. |
| Estados de prospecto | El catálogo de estados con el que vas a elegir el estado inicial. |
| Tipos de producto | El catálogo de productos de cada formulario. |
| Listado de prospectos | Que el módulo esté disponible en esa instalación. |
| Provincias | Se usa para convertir el texto de la provincia al código del sistema. |
| Alta de prospecto | No se prueba automáticamente: crearía un registro real en tu base. Se valida con el primer contacto que entre. |
Debajo del semáforo hay un registro de los últimos eventos: ahí aparece cada contacto que entró, con su resultado.
Credenciales sin tocar la base de datos
La contraseña se guarda cifrada, pero la llave vive en el mismo servidor: es una protección razonable, no una bóveda. Si preferís que la contraseña no exista en la base de datos de WordPress, definila en wp-config.php:
define('PLENARIO_WP_HOST', 'https://api.tuempresa.com.ar');
define('PLENARIO_WP_USER', 'usuario_web');
define('PLENARIO_WP_PASS', 'la-contrasena');
Con eso, esos valores mandan sobre lo que haya guardado y los campos quedan bloqueados en la pantalla, indicando de dónde salen. Es la opción recomendada cuando alguien más administra el sitio.
Mapear un formulario
Andá a Plenario → Prospectos: Mapeo. Acá le decís al plugin qué campo de tu formulario corresponde a cada dato del ERP.
- Elegí el plugin y el formulario En los desplegables aparecen sólo los plugins de formularios que tenés instalados. Elegí uno, elegí el formulario y apretá Cargar.
- Asociá los campos Por cada dato de Plenario vas a ver un desplegable con los campos de ese formulario. Completá los que tengan sentido y dejá el resto en blanco.
- Elegí el estado inicial y el tipo de producto Son fijos para ese formulario. Así el formulario de prendarios puede entrar con otro producto que el de personales.
- Guardá Desde ese momento, cada envío de ese formulario entra a Plenario.
Tenés que mapear Email o Teléfono, al menos uno. Un contacto sin forma de contactarlo no le sirve a nadie, así que el mapeo no se guarda sin eso.
Podés mapear todos los formularios que quieras, cada uno con su propia configuración. Los formularios que no mapees siguen funcionando exactamente como antes: el plugin los ignora. El de contacto general o el de newsletter no se ven afectados.
Campos disponibles
Estos son los datos que se pueden completar desde el formulario:
| Campo | Nota |
|---|---|
| Nombre · Apellido | Si no mapeás Razón social, se arma sola juntando estos dos. |
| Razón social | Es lo que se ve como título del prospecto en el ERP. |
| Tipo de persona | F física o J jurídica. |
| CUIT · Nro. documento | Se limpian solos: podés mandar 20-11111111-2 y entra 20111111112. |
| Sexo | Texto libre, tal como lo mande el formulario. |
| Se valida. Si no es un email válido, el campo entra vacío. | |
| Teléfono | Se queda sólo con los números: +54 (11) 2233-4455 entra como 541122334455. |
| Provincia (texto) | Mandá el nombre y el plugin lo convierte al código del sistema. No importan mayúsculas ni acentos: CORDOBA y Córdoba son lo mismo. |
| Localidad · Código postal | Texto libre. |
| Calle · Número | Texto libre. |
| Monto | Entiende los dos formatos: $ 150.000,50 y 150000.50 son lo mismo. |
| Cuotas | Se queda con el número: 12 cuotas entra como 12. |
| Descripción · Observaciones | Hasta 1000 caracteres. Si el formulario manda varias opciones marcadas, entran separadas por comas. |
Cuando el texto no matchea ninguna provincia del sistema — porque el visitante escribió algo raro o puso una provincia de otro país — el contacto entra igual y el texto original se guarda en Observaciones. Nunca se pierde un contacto por eso.
Notas por plugin de formularios
Contact Form 7
Los campos se identifican por el nombre que les pusiste en el formulario (your-name, your-email, etc.). El envío se toma cuando el formulario se envía correctamente.
WPForms
Los campos aparecen con su etiqueta y su tipo, así que son fáciles de reconocer en el desplegable.
Elementor Pro Forms
Elementor no permite listar los formularios de un sitio: viven dentro del contenido de cada página. Por eso un formulario de Elementor aparece en la pantalla de mapeo recién después de su primer envío. Mandá una prueba desde la página, volvé al mapeo y ahí va a estar.
Gravity Forms
Los campos se identifican por su número (1, 2.3) junto a la etiqueta.
La cola de envíos
En Plenario → Prospectos: Cola está el historial completo. Cada contacto se guarda antes de intentar mandarlo, así que aunque el ERP esté caído o el servidor se corte en el medio, el contacto ya quedó registrado.
| Estado | Qué significa |
|---|---|
| sent | Entró al ERP. En la columna Id ERP está el número de prospecto que le tocó. |
| pending | El sistema no respondió y se va a reintentar solo. En Próximo está la hora del próximo intento. |
| processing | Se está enviando en este momento. |
| failed | No se pudo. En Error está el motivo. Se puede reintentar a mano con el botón. |
| duplicate | Alguien mandó el mismo formulario dos veces seguidas y se descartó la repetición. |
Cómo reintenta
Cuando el problema es de conexión, el plugin reintenta solo, espaciando los intentos: 1 minuto, 5 minutos, 30 minutos, 2 horas, 6 horas y 24 horas. Después de seis intentos fallidos lo marca como failed y queda esperando que alguien lo mire.
Cuando el problema no es de conexión — el ERP rechazó el dato, por ejemplo — no reintenta: esperar no lo va a arreglar. Va directo a failed con el motivo a la vista.
Duplicados
Si el mismo email y CUIT llegan desde el mismo formulario dentro de 10 minutos, el segundo se descarta. Es para que un doble clic del visitante no cree dos prospectos.
Límite de frecuencia
Desde una misma dirección se aceptan hasta 10 envíos cada 5 minutos. Es una defensa contra bots que completan formularios en masa.
Limpieza
Los envíos completados de más de 90 días se borran solos. También hay un botón para hacerlo a mano. Los fallidos se conservan hasta que los resuelvas.
Que los reintentos corran de verdad
WordPress no tiene un reloj propio: sus tareas programadas se disparan cuando alguien visita el sitio. En una web con tráfico constante esto no se nota. Pero si el sitio recibe pocas visitas, un contacto pendiente puede quedarse esperando más de lo previsto.
Si te importa que los reintentos sean puntuales, conviene desactivar el reloj interno y usar el del servidor. En wp-config.php:
define('DISABLE_WP_CRON', true);
Y en el servidor, una tarea cada cinco minutos:
*/5 * * * * curl -s https://tusitio.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
En Windows, lo mismo con el Programador de tareas. Es opcional: sin esto el plugin funciona igual, sólo que los reintentos dependen del tráfico.
Problemas frecuentes
El diagnóstico dice not_found en algún endpoint
Esa instalación de Plenario todavía no tiene ese endpoint. Cada cliente corre su propia versión: hay que actualizarla. Escribinos y lo vemos.
El diagnóstico dice auth
Usuario o contraseña incorrectos, o el usuario no tiene permiso. Probá entrar al ERP con esas mismas credenciales.
El diagnóstico dice redirect
Casi siempre es el host mal escrito. Fijate que sea sólo la dirección base — https://api.tuempresa.com.ar — sin /PlenarioServices.svc ni barra al final.
Mando el formulario y no pasa nada
Revisá, en este orden:
- ¿Ese formulario está mapeado? Los que no lo están se ignoran a propósito.
- ¿El mapeo es del formulario correcto? En la lista figura como
plugin:número. - Mirá el registro de eventos al pie de Conexión: ahí queda anotado si el contacto se descartó y por qué.
Dice que se descartó un contacto sin email ni teléfono
Llegó un envío donde esos dos campos vinieron vacíos. Revisá que estén mapeados a los campos correctos y que al menos uno sea obligatorio en tu formulario.
Los contactos entran sin provincia
Mapeaste Provincia (texto) a un campo cuyo valor no coincide con ninguna provincia del sistema. El texto original queda guardado en Observaciones; fijate ahí qué está llegando.
Todo queda en pending
El sitio no llega al ERP. Probá el diagnóstico en Conexión: si el login tampoco funciona, es conectividad o firewall entre el servidor de WordPress y el del ERP.
Desinstalar
Al desactivar el plugin se cancela la tarea de reintentos, pero no se borra nada: la cola y la configuración quedan intactas por si lo volvés a activar.
Al eliminarlo, los datos se borran sólo si dejaste tildado «Borrar la cola de envíos y toda la configuración» en la pantalla de Conexión. Destildado, todo sobrevive.
Escribinos y lo resolvemos
Si el diagnóstico te muestra un error que no figura acá, mandanos una captura de la pantalla de Conexión — el semáforo y el registro de eventos suelen alcanzar para saber qué está pasando.