Conecta tu formulario web con ConvertCore
Si tienes tu propio formulario de contacto — en tu sitio web, en una landing de campaña, en Webflow, Wix, WordPress, o cualquier otra plataforma — puedes hacer que cada vez que alguien lo llene, el contacto llegue automáticamente a ConvertCore, se guarde en tu lista de clientes, y se dispare una respuesta automática.
Esta guía explica cómo hacerlo paso a paso.
Cuándo usar esta integración vs. el widget de reservas
| Situación | Qué usar |
|---|---|
| Tu cliente quiere agendar una cita con fecha y hora | Widget de reservas |
| Tu cliente llena un formulario de contacto o "quiero más información" | Esta guía — formulario web |
Si lo que necesitas es que el cliente elija un servicio y una hora, usa el widget. Si lo que necesitas es capturar el nombre, teléfono y correo de alguien interesado (un lead), usa esta integración.
Cómo funciona
Cuando tu formulario se envía, hace una llamada automática a ConvertCore. ConvertCore recibe esos datos y:
- Crea el contacto en tu lista de clientes — o lo actualiza si ya existía, sin duplicados.
- Dispara el trigger "Envío de formulario" — puedes configurar un workflow que le mande un mensaje de bienvenida al cliente y te notifique a ti.
- Dispara el trigger "Contacto creado" — si el cliente era nuevo, también se activa este trigger (útil para workflows de bienvenida diferenciados).
Paso 1. Consigue tu URL y tu API Key
Ve a Ajustes → Claves API.
Ahí encuentras:
- Tu API Key — el código largo que empieza con letras y números. Cópialo.
- El endpoint de tu formulario — la URL completa ya con tu slug incluido, lista para copiar. Se ve así:
https://app.convertcoreai.com/api/webhooks/nombre-de-tu-negocio/form-submission
No tienes que armar esa URL a mano — aparece en la pantalla lista para copiar.
Paso 2. Configura tu formulario para que envíe los datos a esa URL
En tu formulario (ya sea en Webflow, WordPress, código propio, o cualquier plataforma), tienes que hacer que al enviarse haga un POST a esa URL con los datos del cliente.
Si usas JavaScript (código propio o Webflow)
Pega este código en el evento "submit" de tu formulario:
fetch("https://app.convertcoreai.com/api/webhooks/TU_SLUG/form-submission", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "TU_API_KEY"
},
body: JSON.stringify({
name: "Nombre del cliente", // reemplaza con el valor real del campo
phone: "+593991234567", // con código de país
email: "cliente@ejemplo.com",
service: "Consulta inicial", // opcional
message: "Texto libre", // opcional
source: "sitio web" // opcional — de dónde vino el lead
})
})
Reemplaza TU_SLUG y TU_API_KEY con los valores que copiaste en el Paso 1.
Si usas Zapier
- Crea un Zap con trigger en tu formulario (Typeform, Gravity Forms, etc.)
- Acción: Webhooks by Zapier → POST
- URL: la que copiaste en el Paso 1
- Headers:
x-api-key: TU_API_KEYyContent-Type: application/json - Body: mapea los campos de tu formulario a
name,email,phone
Campos que puedes enviar
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name | texto | Sí | Nombre completo del cliente |
phone | texto | Sí* | Teléfono con código de país (+1..., +593...) |
email | texto | Sí* | Correo del cliente |
service | texto | No | Servicio que le interesa |
message | texto | No | Mensaje que dejó en el formulario |
source | texto | No | De dónde vino ("sitio web", "instagram", etc.) |
*Al menos
phoneo
Paso 3. Configura el workflow de respuesta automática (opcional pero recomendado)
Una vez que el formulario esté conectado, puedes configurar una respuesta automática que le llegue al cliente en segundos.
- Ve a Flujos → Nuevo flujo.
- En Trigger, elige "Envío de formulario".
- Agrega el paso "Enviar WhatsApp" o "Enviar email" con el mensaje de bienvenida.
- Guarda y activa el flujo.
A partir de ese momento, cada lead que llene tu formulario recibe respuesta inmediata y tú ves el contacto guardado en Contactos.
Errores comunes
"El contacto no llega a ConvertCore"
Causa más frecuente: estás usando el endpoint equivocado.
ConvertCore tiene dos endpoints distintos y es fácil confundirlos:
| Endpoint | Para qué sirve |
|---|---|
/api/webhooks/[slug]/form-submission | Capturar leads desde formularios externos. Crea el contacto. Usa esto. |
/api/public/workflows/in/[token] | Disparar un workflow desde un sistema externo (Stripe, Calendly, etc.). No crea contactos. |
Si usaste el de workflows y te devuelve {"ok":true,"accepted":true} pero no aparece ningún contacto — ese es el problema. Cambia al endpoint de formularios.
"Me devuelve error 401"
Tu API Key está mal, está incompleta, o le falta el header x-api-key. Verifica que el header se llame exactamente x-api-key (en minúsculas) y que el valor sea la API Key completa sin espacios.
"Me devuelve error 422"
El body no tiene ni phone ni email. Al menos uno de los dos es obligatorio para poder identificar al contacto.
"Me devuelve error 403"
La API Key que usaste pertenece a un workspace diferente al del slug en la URL. Verifica que el slug y la API Key sean del mismo workspace.
Preguntas frecuentes
¿Qué pasa si el cliente ya existe en ConvertCore? Se actualiza con los datos que falten — no se crea un duplicado. El historial de conversaciones, citas y notas que ya tiene se conserva intacto.
¿Puedo probar el endpoint antes de tocar mi sitio? Sí. Abre una terminal y ejecuta esto (reemplaza los valores):
curl -X POST https://app.convertcoreai.com/api/webhooks/TU_SLUG/form-submission \
-H "Content-Type: application/json" \
-H "x-api-key: TU_API_KEY" \
-d '{"name":"Prueba Test","phone":"+593991234567"}'
Si devuelve {"ok":true,"created":true,...} — funcionó. Ve a Contactos y el nombre "Prueba Test" debe estar ahí.
¿Puedo usar esto desde Webflow, Wix o WordPress? Sí. Cualquier plataforma que permita JavaScript personalizado o conexión con Zapier funciona. En Webflow, pega el snippet de JavaScript en un bloque de código personalizado adjunto al formulario.
¿El campo source para qué sirve?
Para que sepas de dónde vino el lead. Aparece en el perfil del contacto. Útil si tienes formularios en distintas páginas o campañas y quieres saber cuál convierte mejor.
¿Puedo mandar campos adicionales que no están en la lista?
Sí. Cualquier campo extra que mandes se guarda como nota en el contacto. Si mandas {"name":"...","email":"...","presupuesto":"5000"}, el valor del presupuesto queda registrado.
Respuesta del servidor
| Código | Qué significa |
|---|---|
201 | Contacto creado — era nuevo |
200 | Contacto actualizado — ya existía |
401 | Falta el header x-api-key o la API Key es inválida |
403 | La API Key no pertenece al workspace del slug en la URL |
422 | Falta phone y email — al menos uno es obligatorio |
400 | El JSON está mal formado |
Si el endpoint no responde como esperas, revisa el estado del sistema en convertcore.ai/status. Para soporte técnico: soporte@convertcore.ai