Conecta SpaceKru con Zapier, Make y n8n
Zapier, Make y n8n conectan SpaceKru con miles de apps mediante sus herramientas de webhook y HTTP. Enviar datos HACIA SpaceKru es cuestión de clics; recibir eventos de SpaceKru necesita una solicitud extra, que esta guía te da lista para copiar.
La API de SpaceKru (v1.1) es una API REST/JSON disponible en todos los planes de pago de SpaceKru. Sincroniza leads en ambos sentidos (upsert por external_id), añade leads a campañas, crea y mueve deals y pide seguimientos a los Empleados de IA, gestiona productos, cotizaciones, órdenes, pagos y reservas, permite que tu plataforma converse con tu Empleado de IA de Customer Service y envía webhooks firmados para 16 eventos que dicen quién causó cada cambio. URL base: https://app.spacekru.com/api/public/v1. Autenticación: llave de API Bearer (sk_live_…). Documentación: https://www.spacekru.com/es/developers. OpenAPI 3.1: https://app.spacekru.com/api/public/v1/openapi.json.
Antes de empezar
- Una cuenta de SpaceKru en un plan de pago (sirve la prueba gratuita de 7 días).
- Una llave de API de Lectura y escritura, creada por el dueño de la cuenta en Integraciones → API y Webhooks. Ponle el nombre de la herramienta ("Zapier", "Make", "n8n").
- La URL base de la API:
https://app.spacekru.com/api/public/v1.
Dos direcciones
| Dirección | Ejemplo | Cómo |
|---|---|---|
| Hacia SpaceKru | Respuesta de formulario → lead en SpaceKru | Un paso HTTP de tu herramienta llama POST /leads con tu llave. Sin código. |
| Desde SpaceKru | Lead nuevo en SpaceKru → fila en Google Sheets | Tu herramienta te da una URL de webhook; la registras una vez con POST /subscriptions; SpaceKru la llama en cada evento. |
Zapier
Envía leads a SpaceKru
- Disparador. Elige la app de donde vienen los leads (Typeform, Google Forms, Facebook Lead Ads, Shopify, una hoja de cálculo…).
- Acción: Webhooks by Zapier → POST. URL:
https://app.spacekru.com/api/public/v1/leads. Payload Type:json. Headers:Authorization→Bearer sk_live_…(tu llave). - Data. Una fila por campo:
full_name,work_email,work_phone,company_name,city,country,tags… Se necesita al menos un correo, teléfono o perfil social. Los campos sin mapear o vacíos se ignoran. - Prueba. Una respuesta
201significa que el lead se creó.409 DUPLICATE_RESOURCEsignifica que ya existía (la respuesta trae suexisting_id).
Nombres de campos y límites: Crear un lead. tags puede ser un texto separado por comas como zapier, webinar.
Reacciona a eventos de SpaceKru
- Disparador: Webhooks by Zapier → Catch Hook. Copia la URL que te da Zapier (
https://hooks.zapier.com/hooks/catch/…). - Registra la URL una vez. Ejecuta esta solicitud una vez, cambiando la URL y eligiendo el evento (
lead.created,lead.updated,deal.created,deal.stage_changed,deal.updated,quote.created,quote.status_changed,order.created,order.status_changed,campaign_lead.replied,campaign_lead.form_submitted,product.created,product.updated,booking.created,booking.updated,conversation.message_created). Usa una terminal, cualquier herramienta HTTP (Postman, Insomnia) o un Zap temporal con un paso Webhooks by Zapier → POST. Guarda elsecretde la respuesta.curl curl -X POST "https://app.spacekru.com/api/public/v1/subscriptions" \ -H "Authorization: Bearer $SPACEKRU_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "event_type": "lead.created", "target_url": "https://hooks.zapier.com/hooks/catch/1234567/abcdefg/" }'Node.js const res = await fetch('https://app.spacekru.com/api/public/v1/subscriptions', { method: 'POST', headers: { Authorization: `Bearer ${process.env.SPACEKRU_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ "event_type": "lead.created", "target_url": "https://hooks.zapier.com/hooks/catch/1234567/abcdefg/" }), }); const body = await res.json(); if (!res.ok) { // Branch on body.error.code; quote body.error.request_id to support. throw new Error(`${body.error.code}: ${body.error.message} (request ${body.error.request_id})`); } console.log(body);Python import os import requests r = requests.post( "https://app.spacekru.com/api/public/v1/subscriptions", headers={ "Authorization": f"Bearer {os.environ['SPACEKRU_API_KEY']}", }, json={ "event_type": "lead.created", "target_url": "https://hooks.zapier.com/hooks/catch/1234567/abcdefg/", }, timeout=30, ) body = r.json() if not r.ok: # Branch on body["error"]["code"]; quote body["error"]["request_id"] to support. raise RuntimeError(f"{body['error']['code']}: {body['error']['message']} (request {body['error']['request_id']})") print(body) - Envía una muestra. Haz que el evento ocurra en SpaceKru (para
lead.created, crea un lead). Zapier lo recibe y muestra cada campo:event,data.full_name,triggered_by,changes… - Arma el resto del Zap. Añade tus acciones (Google Sheets, Slack, HubSpot, Gmail…) y publica.
Make
Envía leads a SpaceKru
- Módulo: HTTP → Make a request. URL:
https://app.spacekru.com/api/public/v1/leads. Method:POST. Headers:Authorization=Bearer sk_live_…. - Body. Body type: Raw. Content type: JSON (application/json). Request content: el JSON del lead mapeando los campos de tu disparador, por ejemplo
{"full_name": "{{1.name}}", "work_email": "{{1.email}}", "tags": ["make"]}. - Parse response. Activa Parse response para usar el
iddel lead nuevo en los módulos siguientes.
Reacciona a eventos de SpaceKru
- Añade Webhooks → Custom webhook como primer módulo y copia su dirección (
https://hook.<region>.make.com/…). - Registra la dirección una vez con la solicitud anterior (
POST /subscriptions). - Haz que el evento ocurra en SpaceKru para que Make aprenda la estructura de datos, y añade tus módulos.
n8n
Envía leads a SpaceKru
- Crea una credencial de tipo Header Auth: Name
Authorization, ValueBearer sk_live_…. - Añade un nodo HTTP Request: Method
POST, URLhttps://app.spacekru.com/api/public/v1/leads, Authentication → Generic Credential Type → Header Auth (la credencial anterior). - Activa Send Body, Body Content Type JSON, y mapea los campos.
Reacciona a eventos de SpaceKru
- Añade un nodo Webhook con HTTP Method
POSTy copia su Production URL (no la Test URL). - Activa el workflow: la URL de producción solo escucha mientras el workflow está activo.
- Registra la URL de producción una vez con
POST /subscriptions. - Un n8n propio debe ser accesible en una dirección pública
https://en el puerto 443: se rechazanlocalhost, IPs privadas y nombres internos.
Solución de problemas
| Síntoma | Causa probable |
|---|---|
401 INVALID_API_KEY | El header no es exactamente Authorization: Bearer sk_live_… (falta "Bearer ", sobra un espacio o una comilla) o la llave fue revocada. |
402 PLAN_UPGRADE_REQUIRED | La cuenta de SpaceKru no está en un plan de pago activo. |
403 INSUFFICIENT_SCOPE | La llave es de Solo lectura. Crear leads y webhooks necesita Lectura y escritura. |
400 "Unknown field(s)" | Un nombre de campo que no existe (por ejemplo email en vez de work_email). Mira la lista de campos en la referencia. |
400 "At least one contact channel is required" | El disparador produjo un correo o teléfono vacío. Añade un filtro para que solo continúen las respuestas completas. |
| No llegan eventos | La suscripción se registró con otra URL o fue desactivada (revisa Integraciones → API y Webhooks). Solo se envían los eventos posteriores a la suscripción. |
| Dejaron de llegar eventos | La URL falló una y otra vez (20 intentos fallidos seguidos) o respondió 410. Borra la suscripción y créala de nuevo con una URL que funcione. |
Más detalle de cada código: Errores.